82 Commits

Author SHA1 Message Date
Kostas Karmas
61cc8c9a95 Remove reference to JIRA ticket in comments
CURA-7646
2020-08-10 14:58:59 +02:00
Kostas Karmas
2828f45e89 Add optional machine_extruder_count when creating a machine
If the machine_extruder_count is not taken into consideration on machine creation, calling the
extruderList of that machine will return an incomplete list of extruders (since it considers the
default machine_extruder_count). This causes problems in machines with settable number of extruders
where the default machine_extruder_count is 1 while the machine may have more than 1 extruders.

The problem becomes especially visible when opening a project file with e.g. a CFFF with multiple
extruders, because when the machine is created we do not know yet how many extruders the printer
actually has.

CURA-7646
2020-08-10 14:49:41 +02:00
Ghostkeeper
e7d95f6d90
Give an error message when stack fails to build
This way we may venture at a reason why it failed to build.
2020-08-10 11:26:09 +02:00
Nino van Hooff
89f0970a88 Remove trailing whitespace from Python files 2020-05-29 14:30:33 +02:00
Nino van Hooff
58ffc9dcae Merge remote-tracking branch 'origin/master' into doxygen_to_restructuredtext_comments
# Conflicts:
#	cura/API/__init__.py
#	cura/Settings/CuraContainerRegistry.py
#	cura/Settings/ExtruderManager.py
#	plugins/PostProcessingPlugin/scripts/PauseAtHeight.py
#	plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py
#	plugins/UM3NetworkPrinting/src/Cloud/ToolPathUploader.py
#	plugins/UM3NetworkPrinting/src/Network/LocalClusterOutputDeviceManager.py
2020-05-28 17:31:24 +02:00
Nino van Hooff
c2c96faf5f Convert remaining doxygen to rst 2020-05-28 17:13:44 +02:00
Ghostkeeper
6d3acf946a
Use new extruderList rather than extruders
The extruders dictionary has been deprecated in favour of extruderList.

Done during Turbo Testing and Tooling to reduce the number of warnings in our log.
2020-05-15 15:16:43 +02:00
Jaime van Kessel
2e9dca71ce
Remove a number of unused imports 2020-04-10 13:58:10 +02:00
Jaime van Kessel
670a106957
Be a bit more gracefull when adding a machine failed
This seems to happen for people that manually add machines to cura
but mess something up when copying the files.

CURA-3X
2020-02-28 17:03:38 +01:00
Ghostkeeper
4ffda015db
Implement lazy loading for machine nodes
Should be completely transparent. It'll fail the unit tests though because it now pretends that all printers have machine nodes.

Contributes to issue CURA-6793.
2019-10-09 10:53:58 +02:00
Jaime van Kessel
7e3f265068
Add a function to add a MachineNode to the tree.
This solves the issue that machines created by the stack builder broke the material updating

CURA-6791
2019-09-23 13:18:11 +02:00
Ghostkeeper
105e782e75
Remove unused imports to MaterialManager
Contributes to issue CURA-6776.
2019-09-20 09:57:35 +02:00
Lipu Fei
04e2ecde93 Init intent to empty_intent_container for new machine stacks
CURA-6598
2019-09-09 16:12:37 +02:00
Ghostkeeper
8f34b3dd73
Set quality profiles to preferred quality upon stack creation
A good default.
Possible bug: If there are multiple matching quality profiles but the preferred quality profiles matches none or multiple of them, a random one is chosen. The random profile for the global stack may not match the random one for the extruder?

Contributes to issue CURA-6600.
2019-08-27 09:07:23 +02:00
Ghostkeeper
431c8f4900
Build stack using container tree's preferred material/nozzle
No need to really implement the fallbacks any more for when there are no materials. Only for when the preferred material can't be found.

Contributes to issue CURA-6600.
2019-08-22 17:03:01 +02:00
Ghostkeeper
9bcd3d8c1e
Use ContainerTree to get quality groups instead of QualityManager
Contributes to issue CURA-6600.
2019-08-15 17:01:23 +02:00
Remco Burema
7fb9642e45 Replace deprecated .getContainer() calls with .container
part of CURA-6600
2019-08-15 13:40:08 +02:00
Ghostkeeper
efaa96bca3
Fix building stack from freshly-loaded definition
The definition may not have been added to the forest yet.

Contributes to issue CURA-6600.
2019-08-13 15:44:17 +02:00
Ghostkeeper
93851a95d5
Remove unused variable
Contributes to issue CURA-6600.
2019-08-13 15:04:06 +02:00
Ghostkeeper
6a8e1557c3
Merge branch 'feature_intent' into feature_intent_container_tree
Conflicts:
	.gitlab-ci.yml
	cura/Machines/MaterialManager.py
	cura/Machines/VariantManager.py
	cura/Settings/ContainerManager.py
	cura/Settings/MachineManager.py
	tests/TestMachineManager.py
2019-08-13 14:59:05 +02:00
Ghostkeeper
d710a58233
Don't require VariantManager any more from CuraStackBuilder
We now use the new container tree structure there.

Contributes to issue CURA-6600.
2019-08-08 17:31:26 +02:00
Lipu Fei
c841382bbd Add more info in exceptions 2019-08-02 11:12:16 +02:00
Jaime van Kessel
76163636a1 Fix the simple create machine test 2019-05-24 16:36:39 +02:00
Jaime van Kessel
c1818bcfbe Add test for CuraStackBuilder 2019-05-20 08:57:58 +02:00
Jaime van Kessel
986581c18a Improve logging if extruder cant be found while creating extruder stack 2019-03-13 14:18:25 +01:00
Lipu Fei
5e8dba5266 Remove some duplicate addExtruder() and setNextStack() calls 2018-10-25 11:42:47 +02:00
Lipu Fei
97e6354c13 Fix material update upon extruder-compatible diameter change
CURA-5834

Material models and the material container on an extruder need to be
updated when the extruder's compatible diameter gets changes.
2018-10-19 13:48:52 +02:00
Lipu Fei
c3e7e426ff Fix getDefaultVariantNode for UM2
CURA-5790

UM2 has optional variant which depends on whether Olsson Block is
enabled. getDefaultVariantNode() should take that into account.
2018-10-03 11:24:27 +02:00
Diego Prado Gesto
e28b662649 Clean up the code a bit and update comments.
Contributes to CURA-5736.
2018-09-18 16:04:31 +02:00
Lipu Fei
9924e3e26c Remove duplicated code
CURA-5735
2018-09-18 15:08:55 +02:00
Lipu Fei
ddc5d983a1 Fix single extrusion machines without an ExtruderStack
CURA-5736
2018-09-18 13:35:25 +02:00
Lipu Fei
013032279d Better handling of no quality group in CuraStackBuilder 2018-08-17 10:00:28 +02:00
Ghostkeeper
31e283110f
Check first if preferred quality exists
Fixes #3784.
2018-08-17 09:31:33 +02:00
Lipu Fei
a303f394c8 Move VariantType to VariantType.py
Less circular dependencies for imports.
2018-08-02 16:11:55 +02:00
Lipu Fei
af02dc2758 Only use setMetaDataEntry() 2018-07-11 11:14:57 +02:00
Jack Ha
44e9d1e334 CURA-5334 factor out the need for material_diameter in machine definition for getDefaultMaterial 2018-06-12 11:25:02 +02:00
Ghostkeeper
4157636552
Merge branch '3.4' 2018-06-01 14:03:05 +02:00
Ghostkeeper
2fbcc22123
Fix adding printers due to unused 'parent' parameter
The 'parent' parameter was unused, so I removed it. But I didn't remove all things that called it, apparently. I just removed some. I didn't try the stackbuilder.

Contributes to issue CURA-5330.
2018-06-01 14:02:32 +02:00
Lipu Fei
e859861517 No need to set parent for ExtruderStack 2018-06-01 13:55:28 +02:00
Lipu Fei
051dd7a6e9 WIP: Make application initialization and start up more clear
- Create SingleInstance class to handling single instance stuff.
 - Instead of calling getInstance() everywhere, initialize each object
   explicitly in order when application starts and getInstance()s do not
   create instances any more and they merely return the created
   instances.
 - Only set initial values in construtor functions __init__(). Move the
   initialization of context-aware (i.e. things that depend on other
   things) to separate functions.
 - Split application creation and initialziation into several steps and
   them should be called explicitly in the correct order.
2018-05-04 09:57:02 +02:00
Ghostkeeper
d6205d5d85
Show configuration error when extruder positions don't match
When any extruder position doesn't match when adding a container, don't add any of the extruders. Don't add faulty half-data to the registry!

Contributes to issue CURA-5045.
2018-03-27 14:38:15 +02:00
Ghostkeeper
013bb04a7d
Show configuration error if finding definition to add wasn't found
It must've gotten this ID from somewhere.

Contributes to issue CURA-5045.
2018-03-27 14:32:13 +02:00
Ghostkeeper
544c2c69b4
Remove unused imports
Contributes to issue CURA-5045.
2018-03-27 14:30:48 +02:00
Ghostkeeper
6d3fed8f52
Allow getContainer() to return None
And in the rest of the locations we must then check if it's None and handle that gracefully.
Here we assume that the getContainer message shows a message to the user if necessary. For now we'll just log it.

Contributes to issue CURA-5045.
2018-03-26 15:48:03 +02:00
Lipu Fei
6db26eaca5 Add getDefaultMaterial() in MaterialManager 2018-03-03 15:29:49 +01:00
Lipu Fei
86e12fc437 Add getDefaultVariantNode() in VariantManager 2018-03-03 15:21:29 +01:00
Lipu Fei
85e3857785 Use getters to get managers for CuraStackBuilder 2018-02-27 16:12:28 +01:00
Lipu Fei
ab8fda8812 Fix createMachine: evaluate material diameter if it is a function 2018-02-22 15:21:48 +01:00
Jack Ha
631b72c007 CURA-4606 in all quality profiles, rename all the specific 1.75mm materials back to the generic material 2018-02-21 14:16:26 +01:00
Lipu Fei
fa37a48caa WIP: Fix default buildplate lookup 2018-02-20 11:25:42 +01:00