Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very confusing cross references between definitions and qualities #1496

Closed
ubitux opened this issue Mar 6, 2017 · 21 comments
Closed

Very confusing cross references between definitions and qualities #1496

ubitux opened this issue Mar 6, 2017 · 21 comments
Labels
Status: Won't Fix/Do Not an issue, or an issue that we cannot fix or can live with. Type: Question Question about how something works with concrete answers.

Comments

@ubitux
Copy link
Contributor

ubitux commented Mar 6, 2017

I'm trying to add a new printer, but the I'm unable to get the quality files correctly linked to their printer definition: apparently, a match between definition in the quality cfg file and id in the definition json file is not enough to make the link.

I need to understand how what values are used, because currently I have no idea which elements in this list influence the link:

  • id value in the definition file
  • name value in the definition file (.lower().replace(' ','_')?)
  • overrides.machine_name.default_value value in the definition file (yet another name?)
  • metadata.manufacturer value in the definition file
  • filename of the definition file
  • directory of the quality config files
  • filename of the quality config files
  • general.definition value in the quality files
  • metadata.material value in the quality file (maybe it needs the name in it somehow?)

I've tried many combination, but I'm yet to see any profile show up when I set has_machine_quality in the definition file. Maybe there is no bug, but at least there is an issue wrt documentation.

@nallath
Copy link
Member

nallath commented Mar 7, 2017

The name of the file is used as the id (eg; fdmprinter.def.json gives it the id fdmprinter).

When messing around with new profiles I can recommend using the god-mode plugin for Cura. It gives you a whole lot more debug information. Also take a good look at the log files.

We know it's a bit annoying how all of this works now, but the system has grown a bit complex over the past few months.

@Ghostkeeper
Copy link
Collaborator

Indeed it is the filename of the definition file (5th point in your list). To fix this, we should remove some of the things in the list.

  1. The id value in the definition file is completely superfluous now. We should remove it.
  2. The name value in the definition file is the user-visible name in the Cura GUI.
  3. The overrides.machine_name.default_value duplicates the name metadata. If it is removed however, we should find a different way to communicate the printer name to CuraEngine. Perhaps the only good solution is to remove 2. and use this value in the GUI instead. The problem with removing 2. is that this is implemented in Uranium and machine_name is Cura-specific.
  4. metadata.manufacturer is a completely unrelated metadata property and should not be removed.
  5. The file name of the definition file obviously can't be removed. It's also used basically everywhere.
  6. The directory of the quality profiles is not used in the code. We can remove it but it helps with overview.
  7. The file name of the quality profiles is the same as 5. Also used for their ID. We can't remove the file name and it's not duplicate.
  8. general/definition refers to 5. It is used to link to a definition, which is duplicate with 6, but I'm not sure we want to remove 6.
  9. Same as 8.

In the end, the only ones we want/can remove are 1 and maybe 2.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 7, 2017

@nallath as recommended on IRC, I used the god-mode plugin (with a suggested patch to make it work with git/master). I was able to fix the various traceback thanks to it but it didn't help with the issue.

Issue being: the material and profile are still decorrelated in Cura (I'm supposed to only have a limited number of profile for a given material). More worrying, picking the material has no impact on the material diameter (displayed in the Print Setup), even though going in the Material Manager window displays the correct diameter. So I'm assuming there is still some kind of reference(s) broken somewhere.

@Ghostkeeper so if I understand correctly, the file names matter. So this tree is supposed to work:

output
├── definitions
│   └── dagoma_discoeasy200.def.json
├── materials
│   ├── chromatik_pla.xml.fdm_material
│   ├── fiberlogy_hd_pla.xml.fdm_material
│   ├── filo3d_pla_green.xml.fdm_material
│   ├── filo3d_pla_red.xml.fdm_material
│   ├── filo3d_pla.xml.fdm_material
│   ├── octofiber_pla.xml.fdm_material
│   ├── polyflex_pla.xml.fdm_material
│   ├── polymax_pla.xml.fdm_material
│   ├── polyplus_pla.xml.fdm_material
│   └── polywood_pla.xml.fdm_material
├── meshes
│   └── dagoma_discoeasy200_platform.stl
└── quality
    └── dagoma_discoeasy200
        ├── dagoma_discoeasy200_chromatik_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_chromatik_pla_high.inst.cfg
        ├── dagoma_discoeasy200_chromatik_pla_normal.inst.cfg
        ├── dagoma_discoeasy200_fiberlogy_hd_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_fiberlogy_hd_pla_high.inst.cfg
        ├── dagoma_discoeasy200_fiberlogy_hd_pla_normal.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_green_fast.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_green_high.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_green_normal.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_high.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_normal.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_red_fast.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_red_high.inst.cfg
        ├── dagoma_discoeasy200_filo3d_pla_red_normal.inst.cfg
        ├── dagoma_discoeasy200_octofiber_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_octofiber_pla_high.inst.cfg
        ├── dagoma_discoeasy200_octofiber_pla_normal.inst.cfg
        ├── dagoma_discoeasy200_polyflex_pla_flexible.inst.cfg
        ├── dagoma_discoeasy200_polymax_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_polymax_pla_high.inst.cfg
        ├── dagoma_discoeasy200_polymax_pla_normal.inst.cfg
        ├── dagoma_discoeasy200_polyplus_pla_fast.inst.cfg
        ├── dagoma_discoeasy200_polyplus_pla_high.inst.cfg
        ├── dagoma_discoeasy200_polyplus_pla_normal.inst.cfg
        └── dagoma_discoeasy200_polywood_pla_wood.inst.cfg
%  head -n 10 output/quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_fast.inst.cfg
[general]
version = 2
name = Fast (0.2mm)
definition = dagoma_discoeasy200

[metadata]
type = quality
quality_type = fast
material = chromatik_pla

What else should I check? Cura logger only raises tracebacks about Savitar and zeroconf not being found. I'm using git/master in the 4 main repositories (Cura, CuraEngine, Uranium, and libArcus) and clean/rebuild everything (install + cache + local data) when doing tests.

@Ghostkeeper
Copy link
Collaborator

The material diameter thing is a different problem (reported more often). There's basically two material diameter settings and we should unite them.

That file tree looks like it's supposed to work all right. Note that most of the file names there don't matter to Cura (as long as they are linked correctly in other files), but are only to organise the files for better maintainability. Is it not working? Does your log say anything about these profiles?

@ubitux
Copy link
Contributor Author

ubitux commented Mar 8, 2017

How am I supposed to check which diameter is going to be used then?

It doesn't seem to be working because picking a normal PLA such as Chromatik PLA gives me the possibility to pick any profile such as Wood and Flexible. And similarly, picking a flexible-only material (for instance: Polyflex) allows me to pick any profile.

Here is my current log:

UM.Preferences.getValue [81]: Tried to get the value of non-existing setting general/language.
UM.View.GL.OpenGLContext.detectBestOpenGLVersion [103]: Trying OpenGL context 4.1...
UM.View.GL.OpenGLContext.detectBestOpenGLVersion [113]: Yay, we got at least OpenGL 4.1 core: 4.5 Core profile
UM.Qt.QtApplication.__init__ [71]: Detected most suitable OpenGL context version: 4.1 Core profile
2017-03-08 10:58:21,179 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin ConsoleLogger
2017-03-08 10:58:21,184 - INFO - CuraEngineBackend.CuraEngineBackend.__init__ [64]: Found CuraEngine at: /home/ux/.local/bin/CuraEngine
2017-03-08 10:58:21,184 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin CuraEngineBackend
2017-03-08 10:58:21,186 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin CameraTool
2017-03-08 10:58:21,187 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin MirrorTool
2017-03-08 10:58:21,188 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin SelectionTool
2017-03-08 10:58:21,190 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin RotateTool
2017-03-08 10:58:21,191 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin TranslateTool
2017-03-08 10:58:21,193 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin ScaleTool
2017-03-08 10:58:21,194 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin FileLogger
2017-03-08 10:58:21,194 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin SimpleView
2017-03-08 10:58:21,195 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin WireframeView
2017-03-08 10:58:21,195 - WARNING - UM.PluginRegistry.loadPlugin [74]: Plugin ConsoleLogger was already loaded
2017-03-08 10:58:21,197 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin LocalFileOutputDevice
2017-03-08 10:58:21,199 - WARNING - STLReader.STLReader.<module> [26]: Could not find numpy-stl, falling back to slower code.
2017-03-08 10:58:21,200 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin STLReader
2017-03-08 10:58:21,201 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin STLWriter
2017-03-08 10:58:21,201 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin OBJReader
2017-03-08 10:58:21,202 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin OBJWriter
2017-03-08 10:58:21,229 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin UpdateChecker
2017-03-08 10:58:21,235 - INFO - UpdateChecker.UpdateChecker.run [40]: Checking for new version of cura
2017-03-08 10:58:21,238 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin GodMode
2017-03-08 10:58:21,238 - WARNING - UM.PluginRegistry.loadPlugin [74]: Plugin CuraEngineBackend was already loaded
2017-03-08 10:58:21,240 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin CuraProfileReader
2017-03-08 10:58:21,241 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin ImageReader
2017-03-08 10:58:21,242 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin LegacyProfileReader
2017-03-08 10:58:21,245 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin X3DReader
2017-03-08 10:58:21,246 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin CuraProfileWriter
2017-03-08 10:58:21,247 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin SliceInfoPlugin
2017-03-08 10:58:21,249 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin MachineSettingsAction
2017-03-08 10:58:21,250 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFWriter
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,251 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/__init__.py", line 6, in <module>
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFWriter
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/ThreeMFWriter.py", line 11, in <module>
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:21,252 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:21,252 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin 3MFWriter
2017-03-08 10:58:21,253 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFWriter
2017-03-08 10:58:21,253 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,253 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,253 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/__init__.py", line 6, in <module>
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFWriter
2017-03-08 10:58:21,254 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/ThreeMFWriter.py", line 11, in <module>
2017-03-08 10:58:21,255 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:21,255 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:21,256 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin PerObjectSettingsTool
2017-03-08 10:58:21,257 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFReader
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,258 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/__init__.py", line 5, in <module>
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFReader
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/ThreeMFReader.py", line 22, in <module>
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:21,259 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:21,259 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin 3MFReader
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFReader
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,260 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/__init__.py", line 5, in <module>
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFReader
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/ThreeMFReader.py", line 22, in <module>
2017-03-08 10:58:21,261 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:21,262 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:21,263 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin XmlMaterialProfile
2017-03-08 10:58:21,264 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin SolidView
2017-03-08 10:58:21,266 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin VersionUpgrade21to22
2017-03-08 10:58:21,267 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin VersionUpgrade22to24
2017-03-08 10:58:21,268 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin GCodeProfileReader
2017-03-08 10:58:21,270 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin XRayView
2017-03-08 10:58:21,271 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin PauseBackendPlugin
2017-03-08 10:58:21,273 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module UM3NetworkPrinting
2017-03-08 10:58:21,273 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,274 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/__init__.py", line 3, in <module>
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]:     from . import NetworkPrinterOutputDevicePlugin
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py", line 7, in <module>
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]:     from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo  # type: ignore
2017-03-08 10:58:21,275 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'zeroconf'
2017-03-08 10:58:21,275 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin UM3NetworkPrinting
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module UM3NetworkPrinting
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:21,276 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/__init__.py", line 3, in <module>
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:     from . import NetworkPrinterOutputDevicePlugin
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py", line 7, in <module>
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]:     from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo  # type: ignore
2017-03-08 10:58:21,277 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'zeroconf'
2017-03-08 10:58:21,279 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin ChangeLogPlugin
2017-03-08 10:58:21,281 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin UltimakerMachineActions
2017-03-08 10:58:21,283 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin GCodeReader
2017-03-08 10:58:21,285 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin LayerView
2017-03-08 10:58:21,287 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin RemovableDriveOutputDevice
2017-03-08 10:58:21,289 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin GCodeWriter
2017-03-08 10:58:21,294 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin USBPrinting
2017-03-08 10:58:21,298 - INFO - UM.PluginRegistry.loadPlugin [102]: Loaded plugin AutoSave
2017-03-08 10:58:21,299 - INFO - UM.Qt.QtApplication.__init__ [105]: Command line arguments: {'external-backend': False, 'disable-textures': False, 'qmljsdebugger': None, 'file': [], 'single_instance': False}
2017-03-08 10:58:21,303 - INFO - UM.VersionUpgradeManager.upgrade [100]: Looking for old configuration files to upgrade.
2017-03-08 10:58:21,305 - DEBUG - UM.Backend.Backend._logSocketState [168]: Socket state changed to Listening
2017-03-08 10:58:21,309 - INFO - UM.Backend.Backend.startEngine [72]: Started engine process: /home/ux/.local/bin/CuraEngine
2017-03-08 10:58:21,310 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] Calling engine with: ['/home/ux/.local/bin/CuraEngine', 'connect', '127.0.0.1:49674', '-j', '/home/ux/.local/share/cura/resources/definitions/fdmprinter.def.json', '']
2017-03-08 10:58:21,314 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] 
2017-03-08 10:58:21,317 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] Cura_SteamEngine version DEV
2017-03-08 10:58:21,317 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] Copyright (C) 2014 David Braam
2017-03-08 10:58:21,317 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] 
2017-03-08 10:58:21,318 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] This program is free software: you can redistribute it and/or modify
2017-03-08 10:58:21,318 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] it under the terms of the GNU Affero General Public License as published by
2017-03-08 10:58:21,318 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] the Free Software Foundation, either version 3 of the License, or
2017-03-08 10:58:21,319 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] (at your option) any later version.
2017-03-08 10:58:21,319 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] 
2017-03-08 10:58:21,319 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] This program is distributed in the hope that it will be useful,
2017-03-08 10:58:21,319 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] but WITHOUT ANY WARRANTY; without even the implied warranty of
2017-03-08 10:58:21,320 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2017-03-08 10:58:21,320 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] GNU Affero General Public License for more details.
2017-03-08 10:58:21,320 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] 
2017-03-08 10:58:21,320 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] You should have received a copy of the GNU Affero General Public License
2017-03-08 10:58:21,320 - DEBUG - UM.Backend.Backend._backendLog [90]: [Backend] along with this program.  If not, see <http://www.gnu.org/licenses/>.
2017-03-08 10:58:21,321 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [308]: Attempting to connect to /dev/ttyUSB0
2017-03-08 10:58:21,372 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to vertex_k8400_dual; Multi-extrusion printers are not supported
2017-03-08 10:58:22,118 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [322]: Attempting to connect to printer with serial /dev/ttyUSB0 on baud rate 115200
2017-03-08 10:58:22,120 - WARNING - cura.MachineActionManager.addSupportedAction [77]: Unable to add DiscoverUM3Action to ultimaker3, as the action is not recognised
2017-03-08 10:58:22,120 - WARNING - cura.MachineActionManager.addFirstStartAction [90]: Unable to add DiscoverUM3Action to ultimaker3, as the action is not recognised
2017-03-08 10:58:22,120 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to ultimaker3; Multi-extrusion printers are not supported
2017-03-08 10:58:22,285 - WARNING - cura.MachineActionManager.addSupportedAction [77]: Unable to add DiscoverUM3Action to ultimaker3_extended, as the action is not recognised
2017-03-08 10:58:22,286 - WARNING - cura.MachineActionManager.addFirstStartAction [90]: Unable to add DiscoverUM3Action to ultimaker3_extended, as the action is not recognised
2017-03-08 10:58:22,286 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to ultimaker3_extended; Multi-extrusion printers are not supported
2017-03-08 10:58:22,358 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to ultimaker_original_dual; Multi-extrusion printers are not supported
2017-03-08 10:58:22,477 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to cartesio; Multi-extrusion printers are not supported
2017-03-08 10:58:22,779 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to punchtec_connect_xl; Multi-extrusion printers are not supported
2017-03-08 10:58:22,907 - DEBUG - MachineSettingsAction.MachineSettingsAction._onContainerAdded [72]: Not attaching MachineSettingsAction to ord; Multi-extrusion printers are not supported
2017-03-08 10:58:23,295 - DEBUG - UM.Settings.ContainerRegistry.load [204]: Loading data into container registry took 1.9584410190582275 seconds
2017-03-08 10:58:23,296 - WARNING - UM.OutputDevice.OutputDeviceManager.removeOutputDevice [125]: Could not find output device with id /dev/ttyUSB0 to remove
2017-03-08 10:58:23,296 - DEBUG - UM.Backend.Backend._logSocketState [172]: Socket state changed to Connected
2017-03-08 10:58:23,296 - DEBUG - UM.Backend.Backend._onSocketStateChanged [162]: Backend connected on port 49674
2017-03-08 10:58:23,297 - DEBUG - UM.Controller.setActiveView [81]: Setting active view to SolidView
2017-03-08 10:58:23,300 - WARNING - cura.Settings.ExtruderManager.getMachineExtruders [392]: Tried to get the extruder trains for machine Dagoma DiscoEasy200, which doesn't exist.
2017-03-08 10:58:23,300 - WARNING - cura.Settings.ExtruderManager.getMachineExtruders [392]: Tried to get the extruder trains for machine Dagoma DiscoEasy200, which doesn't exist.
2017-03-08 10:58:23,592 - DEBUG - UM.Mesh.MeshData.calculateNormalsFromVertices [408]: Calculating normals took 0.002301454544067383 seconds
2017-03-08 10:58:23,594 - DEBUG - STLReader.STLReader.read [63]: Loaded a mesh with 105102 vertices
2017-03-08 10:58:23,602 - DEBUG - UM.Qt.Bindings.Theme.load [126]: Loading theme file: /home/ux/.local/share/cura/resources/themes/cura/theme.json
2017-03-08 10:58:23,613 - DEBUG - UM.Qt.Bindings.Theme.load [186]: Loaded theme /home/ux/.local/share/cura/resources/themes/cura
QObject::connect: Parentheses expected, signal MainWindow::
QObject::connect: Parentheses expected, signal MainWindow::
QObject::connect: Parentheses expected, signal MainWindow::
qml: TableViewSelection: index out of range
qml: TableViewSelection: index out of range
2017-03-08 10:58:23,828 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFWriter
2017-03-08 10:58:23,828 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:23,830 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/__init__.py", line 6, in <module>
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFWriter
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFWriter/ThreeMFWriter.py", line 11, in <module>
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:23,831 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:23,831 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin 3MFWriter
2017-03-08 10:58:23,832 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module 3MFReader
2017-03-08 10:58:23,832 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:23,833 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:23,834 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/__init__.py", line 5, in <module>
2017-03-08 10:58:23,834 - ERROR - UM.Logger.logException [78]:     from . import ThreeMFReader
2017-03-08 10:58:23,834 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/3MFReader/ThreeMFReader.py", line 22, in <module>
2017-03-08 10:58:23,834 - ERROR - UM.Logger.logException [78]:     import Savitar
2017-03-08 10:58:23,834 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'Savitar'
2017-03-08 10:58:23,834 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin 3MFReader
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [74]: Exception: Import error loading module UM3NetworkPrinting
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [78]: Traceback (most recent call last):
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/python3.6/site-packages/UM/PluginRegistry.py", line 293, in _findPlugin
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [78]:     module = imp.load_module(plugin_id, file, path, desc)
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 244, in load_module
2017-03-08 10:58:23,835 - ERROR - UM.Logger.logException [78]:     return load_package(name, filename)
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "/usr/lib/python3.6/imp.py", line 216, in load_package
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:     return _load(spec)
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 675, in _load
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap_external>", line 678, in exec_module
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/__init__.py", line 3, in <module>
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:     from . import NetworkPrinterOutputDevicePlugin
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:   File "/home/ux/.local/lib/cura/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py", line 7, in <module>
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]:     from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo  # type: ignore
2017-03-08 10:58:23,836 - ERROR - UM.Logger.logException [78]: ModuleNotFoundError: No module named 'zeroconf'
2017-03-08 10:58:23,837 - ERROR - UM.PluginRegistry._populateMetaData [249]: Could not find plugin UM3NetworkPrinting
2017-03-08 10:58:23,837 - ERROR - UM.Qt.Bindings.PluginsModel._update [39]: Plugin is missing a plugin metadata entry
2017-03-08 10:58:23,837 - ERROR - UM.Qt.Bindings.PluginsModel._update [39]: Plugin is missing a plugin metadata entry
2017-03-08 10:58:23,837 - ERROR - UM.Qt.Bindings.PluginsModel._update [39]: Plugin is missing a plugin metadata entry
2017-03-08 10:58:23,872 - DEBUG - PauseBackendPlugin.PauseBackend._createAdditionalComponentsView [28]: Creating additional ui components for Pause Backend plugin.
2017-03-08 10:58:23,903 - DEBUG - UM.Mesh.MeshData.approximateConvexHull [376]: approximateConvexHull(target_count=1024) Calculating 3D convex hull took 0.026973485946655273 seconds. 74 input vertices. 74 output vertices.
2017-03-08 10:58:24,076 - DEBUG - UM.Qt.QtRenderer._initialize [172]: Support for Vertex Array Objects: True
2017-03-08 10:58:24,080 - DEBUG - UM.View.GL.OpenGL.__init__ [76]: Initialized OpenGL subsystems.
2017-03-08 10:58:24,080 - DEBUG - UM.View.GL.OpenGL.__init__ [77]: OpenGL Version:  4.5 (Core Profile) Mesa 17.0.1
2017-03-08 10:58:24,080 - DEBUG - UM.View.GL.OpenGL.__init__ [78]: OpenGL Vendor:   Intel Open Source Technology Center
2017-03-08 10:58:24,080 - DEBUG - UM.View.GL.OpenGL.__init__ [79]: OpenGL Renderer: Mesa DRI Intel(R) Haswell Desktop 
2017-03-08 10:58:24,081 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/default.shader]...
2017-03-08 10:58:24,083 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/selection.shader]...
2017-03-08 10:58:24,085 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/default.shader]...
2017-03-08 10:58:24,087 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/composite.shader]...
2017-03-08 10:58:24,093 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/cura/resources/shaders/overhang.shader]...
2017-03-08 10:58:24,100 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/cura/resources/shaders/striped.shader]...
2017-03-08 10:58:24,108 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/default.shader]...
2017-03-08 10:58:24,110 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/cura/resources/shaders/grid.shader]...
2017-03-08 10:58:24,113 - DEBUG - UM.View.GL.ShaderProgram.load [55]: Loading shader file [/home/ux/.local/share/uranium/resources/shaders/platform.shader]...
2017-03-08 10:58:29,455 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [322]: Attempting to connect to printer with serial /dev/ttyUSB0 on baud rate 250000
2017-03-08 10:58:30,960 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [348]: Correct response for auto-baudrate detection received.
2017-03-08 10:58:30,961 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [348]: Correct response for auto-baudrate detection received.
2017-03-08 10:58:30,963 - DEBUG - USBPrinting.USBPrinterOutputDevice._connect [348]: Correct response for auto-baudrate detection received.
2017-03-08 10:58:30,964 - INFO - USBPrinting.USBPrinterOutputDevice._connect [355]: Established printer connection on port /dev/ttyUSB0
2017-03-08 10:58:30,964 - INFO - USBPrinting.USBPrinterOutputDevice._listen [477]: Printer connection listen thread started for /dev/ttyUSB0
2017-03-08 10:58:33,990 - DEBUG - AutoSave.AutoSave._onTimeout [48]: Autosaving preferences, instances and profiles

@Ghostkeeper
Copy link
Collaborator

It doesn't seem to be working because picking a normal PLA such as Chromatik PLA gives me the possibility to pick any profile such as Wood and Flexible. And similarly, picking a flexible-only material allows me to pick any profile.

So that was the problem! I thought it was crashing for you or not adding the definition or something.

It seems to be an issue of documentation then, because all your material profiles have the PLA material type (if they are named accurately). Profiles are filtered on the material type, not on the individual material. If something like woodfill or flexible material needs different quality profiles, then it should have a different material type.

If profiles were linked to materials directly rather than material types, then every time a user duplicates a material they'd have to create wholly new profiles for it, even if they just want to adjust the temperature or something.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 8, 2017

So wait, currently I have 3 cases of profiles:

  • wood generated for the polywood material
  • flexible generated for the polyflex material
  • fast/high/normal generated for each of the remaining PLA materials (chromatik, fiberlogy, filo3d, ...)

What happens if I pick, let's say, the not supposed to be available "fast" profile in the menu when I have the polyflex material? Which settings is it going to use?

@Ghostkeeper
Copy link
Collaborator

If polyflex has its own material type and dagoma_discoeasy200_polyflex_pla_flexible.inst.cfg is the only available profile for that material type, then you should only be seeing that quality profile in the drop-down menu, no "fast" profile.

Note that Polyflex is not PLA, by the way. Its major component is TPU.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 8, 2017

I'm seeing the 5 profiles for every material I'm picking: fast, high, normal, wood and flexible, be it PLA, flexible or wood. That's what I'm trying to fix.

About Polyflex not being PLA, I'm only porting data from a fork of Cura Legacy, and it says "PLA". Not saying it's correct :)

I'll change PLA to TPU when this is actually working.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 9, 2017

(Apparently Github dropped my post or I'm going crazy, so I'm reposting again).

But instead of a long text, here is a gif to clarify the behavior:

Whatever the material I always get all the profiles/quality. But if I manually put garbage into the metadata.material of the quality config files, that profile list gets empty, which is the expected behavior but also confirms the link is currently "working".

Still, I'm not supposed to get wood and flexible with the random PLA, and should not get anything else than wood and flexible with the respective polywood and polyflex:

quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyflex_pla_flexible.inst.cfg:quality_type = flexible
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_fast.inst.cfg:quality_type = fast
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_high.inst.cfg:quality_type = high
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_normal.inst.cfg:quality_type = normal
quality/dagoma_discoeasy200/dagoma_discoeasy200_polywood_pla_wood.inst.cfg:quality_type = wood
quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_fast.inst.cfg:material = chromatik_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_high.inst.cfg:material = chromatik_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_chromatik_pla_normal.inst.cfg:material = chromatik_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_fast.inst.cfg:material = fiberlogy_hd_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_high.inst.cfg:material = fiberlogy_hd_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_fiberlogy_hd_pla_normal.inst.cfg:material = fiberlogy_hd_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_fast.inst.cfg:material = filo3d_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_fast.inst.cfg:material = filo3d_pla_green
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_high.inst.cfg:material = filo3d_pla_green
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_green_normal.inst.cfg:material = filo3d_pla_green
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_high.inst.cfg:material = filo3d_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_normal.inst.cfg:material = filo3d_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_fast.inst.cfg:material = filo3d_pla_red
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_high.inst.cfg:material = filo3d_pla_red
quality/dagoma_discoeasy200/dagoma_discoeasy200_filo3d_pla_red_normal.inst.cfg:material = filo3d_pla_red
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_fast.inst.cfg:material = octofiber_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_high.inst.cfg:material = octofiber_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_octofiber_pla_normal.inst.cfg:material = octofiber_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyflex_pla_flexible.inst.cfg:material = polyflex_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_fast.inst.cfg:material = polymax_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_high.inst.cfg:material = polymax_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polymax_pla_normal.inst.cfg:material = polymax_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_fast.inst.cfg:material = polyplus_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_high.inst.cfg:material = polyplus_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polyplus_pla_normal.inst.cfg:material = polyplus_pla
quality/dagoma_discoeasy200/dagoma_discoeasy200_polywood_pla_wood.inst.cfg:material = polywood_pla

@Ghostkeeper
Copy link
Collaborator

Ghostkeeper commented Mar 10, 2017

It is indeed confusing. What happens when you change this line?
https://github.com/DelphinPETER/Dagoma-Settings-For-Cura/blob/Cura_2.4/resources/materials/polywood_pla.xml.fdm_material#L9
...to something like <material>Woodfill</material>.

That is the "material type" I was talking about.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 10, 2017

This seems to work: the "wood" profile disappears when picking PLA materials, and is only present with PolyWood material.

I understand we may want to change that key, but even if we do that, I can't be sure that picking fast/high/normal in the other PLA will actually apply the expected profile...

Note: current repository reference is located at https://github.com/ubitux/cura-dagoma/tree/master/output
Note 2: the listed materials are already upstream at https://github.com/Ultimaker/fdm_materials/

@Ghostkeeper
Copy link
Collaborator

I understand we may want to change that key, but even if we do that, I can't be sure that picking fast/high/normal in the other PLA will actually apply the expected profile...

Cura makes sure that when a user selects a quality profile on one extruder, all other extruders always have a quality profile with the same quality type at the other extruder. The quality types we have are normal, high, fast and draft. So if you'd select Normal quality for the extruder doing Filo3D PLA while the other extruder has Octofiber, it would select your dagoma_discoeasy200_filo3d_pla_normal.inst.cfg file on one extruder and the dagoma_discoeasy_octofiber_pla_normal.inst.cfg in the other, since both files have quality type normal. Switching one of them to High would switch the other too.

Also, when a user makes a custom quality profile (called "quality-changes" internally), they get the same quality type as the profile it was derived from.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 13, 2017

OK. So in the end, do we agree that there is one bug when only 1 quality is supposed to be available but many of them ends up being available as well? Like, in the current case of PolyWood: what happens when I pick Standard? There is no such thing as dagoma_discoeasy200_polywood_pla_normal.inst.cfg, only dagoma_discoeasy200_polywood_pla_wood.inst.cfg

@Ghostkeeper
Copy link
Collaborator

Ghostkeeper commented Mar 14, 2017

If you've got Polywood selected as material and it has its own material type, then "standard" should not be in the list to select. Only "Wood filaments" (i.e. dagoma_discoeasy200_polywood_pla_wood.inst.cfg).

@ubitux
Copy link
Contributor Author

ubitux commented Mar 14, 2017

Why "and has its own material type"?

We are defining specific configurations for specific materials, not material types! Are you saying that quality profiles can not be specific to a material if they are of the same type?

I'm sorry, it looks like we have a huge misunderstanding somewhere, but I'm starting to believe it's not just a bug but a design issue...

@Ghostkeeper
Copy link
Collaborator

It is a design issue. The code that handles the selecting of materials and quality profiles is extremely involved: https://github.com/Ultimaker/Cura/blob/master/cura/Settings/MachineManager.py

It might be a good idea at this point to use the God Mode plug-in https://github.com/sedwards2009/cura-god-mode-plugin
It'll show exactly which profiles are loaded so there is no confusion due to profiles having the same display name.

@ubitux
Copy link
Contributor Author

ubitux commented Mar 15, 2017

So the proper workaround is to change the material type of PolyWood and PolyFlex to something arbitrary different than all the other materials available for a given printer, otherwise I end up with undefined behaviour (because unavailable profiles becomes visible and we don't know which one applies)?

Is there a plan or issue opened about that design problem?

@Ghostkeeper
Copy link
Collaborator

Ghostkeeper commented Mar 16, 2017

It's not undefined behaviour, it's just very complex. That is a design issue.

We have a refactor planned for the way that resolve functions work in 2.6, but that is only indirectly related. We also want to change the way that material profiles work one day, which is related, but that is not planned for any specific release yet.

@ianpaschal
Copy link
Contributor

@Ghostkeeper Is this still and issue? I'm also not super experienced at making definitions or qualities.

@ChrisTerBeke ChrisTerBeke added Status: Won't Fix/Do Not an issue, or an issue that we cannot fix or can live with. Category: Cura Type: Question Question about how something works with concrete answers. labels Mar 2, 2018
@Ghostkeeper
Copy link
Collaborator

As far as I'm understanding, the real problem is that our setting system is complex. It's true, but I don't think there is a solution for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Won't Fix/Do Not an issue, or an issue that we cannot fix or can live with. Type: Question Question about how something works with concrete answers.
Projects
None yet
Development

No branches or pull requests

5 participants