From c8eeb737bb403b463604dbc5b37075848c26ea82 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 7 Sep 2018 15:45:31 +0200 Subject: [PATCH 1/7] Automatically stop simulation when the user manually changes the layer (as opposed to the sim. itself). [CURA-5677] --- plugins/SimulationView/SimulationView.qml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/SimulationView/SimulationView.qml b/plugins/SimulationView/SimulationView.qml index be767e93ab..6de5134fc7 100644 --- a/plugins/SimulationView/SimulationView.qml +++ b/plugins/SimulationView/SimulationView.qml @@ -666,9 +666,21 @@ Item Connections { target: UM.SimulationView - onMaxLayersChanged: layerSlider.setUpperValue(UM.SimulationView.currentLayer) - onMinimumLayerChanged: layerSlider.setLowerValue(UM.SimulationView.minimumLayer) - onCurrentLayerChanged: layerSlider.setUpperValue(UM.SimulationView.currentLayer) + onMaxLayersChanged: + { + playButton.pauseSimulation() + layerSlider.setUpperValue(UM.SimulationView.currentLayer) + } + onMinimumLayerChanged: + { + playButton.pauseSimulation() + layerSlider.setLowerValue(UM.SimulationView.minimumLayer) + } + onCurrentLayerChanged: + { + playButton.pauseSimulation() + layerSlider.setUpperValue(UM.SimulationView.currentLayer) + } } // make sure the slider handlers show the correct value after switching views @@ -723,6 +735,7 @@ Item UM.SimulationView.setSimulationRunning(true) iconSource = "./resources/simulation_pause.svg" simulationTimer.start() + status = 1 } } @@ -766,6 +779,7 @@ Item { UM.SimulationView.setCurrentLayer(currentLayer+1) UM.SimulationView.setCurrentPath(0) + playButton.resumeSimulation() } } else From d8421105d4d09bd6e412a892656bb8ef3dd4ce34 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 10 Sep 2018 12:13:35 +0200 Subject: [PATCH 2/7] Fix quality lookup CURA-5694 For a machine, if it has extruder-specific qualities, when we look up extruder qualities, we should NOT fall back to use the global qualities. --- cura/Machines/QualityManager.py | 31 ++++++++++++++++++++----------- cura/Settings/GlobalStack.py | 3 +++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index 580d52b089..4ae58a71b2 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -200,14 +200,19 @@ class QualityManager(QObject): machine_definition_id = getMachineDefinitionIDForQualitySearch(machine.definition) # This determines if we should only get the global qualities for the global stack and skip the global qualities for the extruder stacks - has_variants = machine.getHasVariants() - has_materials = machine.getHasMaterials() - has_variants_or_materials = has_variants or has_materials + has_machine_specific_qualities = machine.getHasMachineQuality() # To find the quality container for the GlobalStack, check in the following fall-back manner: # (1) the machine-specific node # (2) the generic node machine_node = self._machine_nozzle_buildplate_material_quality_type_to_quality_dict.get(machine_definition_id) + # Check if this machine has specific quality profiles for its extruders, if so, when looking up extruder + # qualities, we should not fall back to use the global qualities. + has_extruder_specific_qualities = False + if machine_node: + if machine_node.children_map: + has_extruder_specific_qualities = True + default_machine_node = self._machine_nozzle_buildplate_material_quality_type_to_quality_dict.get(self._default_machine_definition_id) nodes_to_check = [machine_node, default_machine_node] @@ -215,12 +220,10 @@ class QualityManager(QObject): quality_group_dict = {} for node in nodes_to_check: if node and node.quality_type_map: - # Only include global qualities - if has_variants_or_materials: - quality_node = list(node.quality_type_map.values())[0] - is_global_quality = parseBool(quality_node.metadata.get("global_quality", False)) - if not is_global_quality: - continue + quality_node = list(node.quality_type_map.values())[0] + is_global_quality = parseBool(quality_node.metadata.get("global_quality", False)) + if not is_global_quality: + continue for quality_type, quality_node in node.quality_type_map.items(): quality_group = QualityGroup(quality_node.metadata["name"], quality_type) @@ -302,9 +305,9 @@ class QualityManager(QObject): else: nodes_to_check += [default_machine_node] - for node in nodes_to_check: + for node_idx, node in enumerate(nodes_to_check): if node and node.quality_type_map: - if has_variants_or_materials: + if has_extruder_specific_qualities: # Only include variant qualities; skip non global qualities quality_node = list(node.quality_type_map.values())[0] is_global_quality = parseBool(quality_node.metadata.get("global_quality", False)) @@ -320,6 +323,12 @@ class QualityManager(QObject): if position not in quality_group.nodes_for_extruders: quality_group.nodes_for_extruders[position] = quality_node + # If the machine has its own specific qualities, for extruders, it should skip the global qualities + # and use the material/variant specific qualities. + if has_extruder_specific_qualities: + if node_idx == len(nodes_to_check) - 1: + break + # Update availabilities for each quality group self._updateQualityGroupsAvailability(machine, quality_group_dict.values()) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index d7ebe804f4..e2f7df41ea 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -196,6 +196,9 @@ class GlobalStack(CuraContainerStack): def getHasVariants(self) -> bool: return parseBool(self.getMetaDataEntry("has_variants", False)) + def getHasMachineQuality(self) -> bool: + return parseBool(self.getMetaDataEntry("has_machine_quality", False)) + ## private: global_stack_mime = MimeType( From 351fe5c5bc772716a453deaee2156e2407e0340b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Sep 2018 17:24:00 +0200 Subject: [PATCH 3/7] Fix style. --- cura/Settings/ExtruderManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 1003ab5c86..479e69f558 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -41,7 +41,7 @@ class ExtruderManager(QObject): # Per machine, a dictionary of extruder container stack IDs. Only for separately defined extruders. self._extruder_trains = {} # type: Dict[str, Dict[str, ExtruderStack]] self._active_extruder_index = -1 # Indicates the index of the active extruder stack. -1 means no active extruder stack - self._selected_object_extruders = [] # type: List[ExtruderStack] + self._selected_object_extruders = [] # type: List[str] self._addCurrentMachineExtruders() Selection.selectionChanged.connect(self.resetSelectedObjectExtruders) @@ -80,7 +80,7 @@ class ExtruderManager(QObject): ## Gets a dict with the extruder stack ids with the extruder number as the key. @pyqtProperty("QVariantMap", notify = extrudersChanged) def extruderIds(self) -> Dict[str, str]: - extruder_stack_ids = {} + extruder_stack_ids = {} # type: Dict[str, str] global_container_stack = self._application.getGlobalContainerStack() if global_container_stack: From 109b3fc1d23a606ee4226fdab9c6639ea8dd51d1 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 11 Sep 2018 09:08:50 +0200 Subject: [PATCH 4/7] [CURA-5677] Removed some superfluous and/or dead lines. --- plugins/SimulationView/SimulationView.qml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/plugins/SimulationView/SimulationView.qml b/plugins/SimulationView/SimulationView.qml index 6de5134fc7..b4ca9584c7 100644 --- a/plugins/SimulationView/SimulationView.qml +++ b/plugins/SimulationView/SimulationView.qml @@ -666,16 +666,7 @@ Item Connections { target: UM.SimulationView - onMaxLayersChanged: - { - playButton.pauseSimulation() - layerSlider.setUpperValue(UM.SimulationView.currentLayer) - } - onMinimumLayerChanged: - { - playButton.pauseSimulation() - layerSlider.setLowerValue(UM.SimulationView.minimumLayer) - } + onMaxLayersChanged: layerSlider.setUpperValue(UM.SimulationView.currentLayer) onCurrentLayerChanged: { playButton.pauseSimulation() From bacae6c1364ac33b7751557b7c401cd0d15827e5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Sep 2018 11:56:49 +0200 Subject: [PATCH 5/7] Update name of the VersionUpgrade for the version 3.5. --- resources/bundled_packages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/bundled_packages.json b/resources/bundled_packages.json index d216415921..c593f48d2d 100644 --- a/resources/bundled_packages.json +++ b/resources/bundled_packages.json @@ -662,12 +662,12 @@ } } }, - "VersionUpgrade34to40": { + "VersionUpgrade34to35": { "package_info": { - "package_id": "VersionUpgrade34to40", + "package_id": "VersionUpgrade34to35", "package_type": "plugin", - "display_name": "Version Upgrade 3.4 to 4.0", - "description": "Upgrades configurations from Cura 3.4 to Cura 4.0.", + "display_name": "Version Upgrade 3.4 to 3.5", + "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", "package_version": "1.0.0", "sdk_version": 4, "website": "https://ultimaker.com", From 19eefc71da7baaa4dd9c0092672b1d70641f3320 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Sep 2018 13:53:07 +0200 Subject: [PATCH 6/7] Update SDK version for the bundled packages. --- resources/bundled_packages.json | 134 ++++++++++++++++---------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/resources/bundled_packages.json b/resources/bundled_packages.json index c593f48d2d..7107bbe4f0 100644 --- a/resources/bundled_packages.json +++ b/resources/bundled_packages.json @@ -6,7 +6,7 @@ "display_name": "3MF Reader", "description": "Provides support for reading 3MF files.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -23,7 +23,7 @@ "display_name": "3MF Writer", "description": "Provides support for writing 3MF files.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -40,7 +40,7 @@ "display_name": "Change Log", "description": "Shows changes since latest checked version.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -57,7 +57,7 @@ "display_name": "CuraEngine Backend", "description": "Provides the link to the CuraEngine slicing backend.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -74,7 +74,7 @@ "display_name": "Cura Profile Reader", "description": "Provides support for importing Cura profiles.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -91,7 +91,7 @@ "display_name": "Cura Profile Writer", "description": "Provides support for exporting Cura profiles.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -108,7 +108,7 @@ "display_name": "Firmware Update Checker", "description": "Checks for firmware updates.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -125,7 +125,7 @@ "display_name": "Compressed G-code Reader", "description": "Reads g-code from a compressed archive.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -142,7 +142,7 @@ "display_name": "Compressed G-code Writer", "description": "Writes g-code to a compressed archive.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -159,7 +159,7 @@ "display_name": "G-Code Profile Reader", "description": "Provides support for importing profiles from g-code files.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -176,7 +176,7 @@ "display_name": "G-Code Reader", "description": "Allows loading and displaying G-code files.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "VictorLarchenko", @@ -193,7 +193,7 @@ "display_name": "G-Code Writer", "description": "Writes g-code to a file.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -210,7 +210,7 @@ "display_name": "Image Reader", "description": "Enables ability to generate printable geometry from 2D image files.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -227,7 +227,7 @@ "display_name": "Legacy Cura Profile Reader", "description": "Provides support for importing profiles from legacy Cura versions.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -244,7 +244,7 @@ "display_name": "Machine Settings Action", "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "fieldOfView", @@ -261,7 +261,7 @@ "display_name": "Model Checker", "description": "Checks models and print configuration for possible printing issues and give suggestions.", "package_version": "0.1.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -278,7 +278,7 @@ "display_name": "Monitor Stage", "description": "Provides a monitor stage in Cura.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -295,7 +295,7 @@ "display_name": "Per-Object Settings Tool", "description": "Provides the per-model settings.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -312,7 +312,7 @@ "display_name": "Post Processing", "description": "Extension that allows for user created scripts for post processing.", "package_version": "2.2.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -329,7 +329,7 @@ "display_name": "Prepare Stage", "description": "Provides a prepare stage in Cura.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -346,7 +346,7 @@ "display_name": "Removable Drive Output Device", "description": "Provides removable drive hotplugging and writing support.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -363,7 +363,7 @@ "display_name": "Simulation View", "description": "Provides the Simulation view.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -380,7 +380,7 @@ "display_name": "Slice Info", "description": "Submits anonymous slice info. Can be disabled through preferences.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -397,7 +397,7 @@ "display_name": "Solid View", "description": "Provides a normal solid mesh view.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -414,7 +414,7 @@ "display_name": "Support Eraser Tool", "description": "Creates an eraser mesh to block the printing of support in certain places.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -431,7 +431,7 @@ "display_name": "Toolbox", "description": "Find, manage and install new Cura packages.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -448,7 +448,7 @@ "display_name": "UFP Writer", "description": "Provides support for writing Ultimaker Format Packages.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -465,7 +465,7 @@ "display_name": "Ultimaker Machine Actions", "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -482,7 +482,7 @@ "display_name": "UM3 Network Printing", "description": "Manages network connections to Ultimaker 3 printers.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -499,7 +499,7 @@ "display_name": "USB Printing", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -516,7 +516,7 @@ "display_name": "User Agreement", "description": "Ask the user once if he/she agrees with our license.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -533,7 +533,7 @@ "display_name": "Version Upgrade 2.1 to 2.2", "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -550,7 +550,7 @@ "display_name": "Version Upgrade 2.2 to 2.4", "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -567,7 +567,7 @@ "display_name": "Version Upgrade 2.5 to 2.6", "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -584,7 +584,7 @@ "display_name": "Version Upgrade 2.6 to 2.7", "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -601,7 +601,7 @@ "display_name": "Version Upgrade 2.7 to 3.0", "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -618,7 +618,7 @@ "display_name": "Version Upgrade 3.0 to 3.1", "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -635,7 +635,7 @@ "display_name": "Version Upgrade 3.2 to 3.3", "description": "Upgrades configurations from Cura 3.2 to Cura 3.3.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -652,7 +652,7 @@ "display_name": "Version Upgrade 3.3 to 3.4", "description": "Upgrades configurations from Cura 3.3 to Cura 3.4.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -669,7 +669,7 @@ "display_name": "Version Upgrade 3.4 to 3.5", "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -686,7 +686,7 @@ "display_name": "X3D Reader", "description": "Provides support for reading X3D files.", "package_version": "0.5.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "SevaAlekseyev", @@ -703,7 +703,7 @@ "display_name": "XML Material Profiles", "description": "Provides capabilities to read and write XML-based material profiles.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -720,7 +720,7 @@ "display_name": "X-Ray View", "description": "Provides the X-Ray view.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com", "author": { "author_id": "Ultimaker", @@ -971,7 +971,7 @@ "display_name": "Dagoma Chromatik PLA", "description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://dagoma.fr/boutique/filaments.html", "author": { "author_id": "Dagoma", @@ -988,7 +988,7 @@ "display_name": "FABtotum ABS", "description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so it’s compatible with all versions of the FABtotum Personal fabricator.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40", "author": { "author_id": "FABtotum", @@ -1005,7 +1005,7 @@ "display_name": "FABtotum Nylon", "description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53", "author": { "author_id": "FABtotum", @@ -1022,7 +1022,7 @@ "display_name": "FABtotum PLA", "description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starch’s sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotum’s one is between 185° and 195°.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39", "author": { "author_id": "FABtotum", @@ -1039,7 +1039,7 @@ "display_name": "FABtotum TPU Shore 98A", "description": "", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66", "author": { "author_id": "FABtotum", @@ -1056,7 +1056,7 @@ "display_name": "Fiberlogy HD PLA", "description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS – better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/", "author": { "author_id": "Fiberlogy", @@ -1073,7 +1073,7 @@ "display_name": "Filo3D PLA", "description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://dagoma.fr", "author": { "author_id": "Dagoma", @@ -1090,7 +1090,7 @@ "display_name": "IMADE3D JellyBOX PETG", "description": "", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1107,7 +1107,7 @@ "display_name": "IMADE3D JellyBOX PLA", "description": "", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1124,7 +1124,7 @@ "display_name": "Octofiber PLA", "description": "PLA material from Octofiber.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://nl.octofiber.com/3d-printing-filament/pla.html", "author": { "author_id": "Octofiber", @@ -1141,7 +1141,7 @@ "display_name": "PolyFlex™ PLA", "description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://www.polymaker.com/shop/polyflex/", "author": { "author_id": "Polymaker", @@ -1158,7 +1158,7 @@ "display_name": "PolyMax™ PLA", "description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://www.polymaker.com/shop/polymax/", "author": { "author_id": "Polymaker", @@ -1175,7 +1175,7 @@ "display_name": "PolyPlus™ PLA True Colour", "description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://www.polymaker.com/shop/polyplus-true-colour/", "author": { "author_id": "Polymaker", @@ -1192,7 +1192,7 @@ "display_name": "PolyWood™ PLA", "description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "http://www.polymaker.com/shop/polywood/", "author": { "author_id": "Polymaker", @@ -1209,7 +1209,7 @@ "display_name": "Ultimaker ABS", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "Ultimaker", @@ -1228,7 +1228,7 @@ "display_name": "Ultimaker CPE", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "Ultimaker", @@ -1247,7 +1247,7 @@ "display_name": "Ultimaker Nylon", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "Ultimaker", @@ -1266,7 +1266,7 @@ "display_name": "Ultimaker PC", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/pc", "author": { "author_id": "Ultimaker", @@ -1285,7 +1285,7 @@ "display_name": "Ultimaker PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "Ultimaker", @@ -1304,7 +1304,7 @@ "display_name": "Ultimaker PVA", "description": "Example package for material and quality profiles for Ultimaker materials.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "Ultimaker", @@ -1323,7 +1323,7 @@ "display_name": "Vertex Delta ABS", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1340,7 +1340,7 @@ "display_name": "Vertex Delta PET", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1357,7 +1357,7 @@ "display_name": "Vertex Delta PLA", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1374,7 +1374,7 @@ "display_name": "Vertex Delta TPU", "description": "ABS material and quality files for the Delta Vertex K8800.", "package_version": "1.0.0", - "sdk_version": 4, + "sdk_version": 5, "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", From d9e23bf02b3ecf19f1c830a0a87739e6fb55bd7d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Sep 2018 10:36:53 +0200 Subject: [PATCH 7/7] Fix issue caused by making metadata of containerNode private --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 7d9b2aacc3..e12be94b25 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -269,7 +269,7 @@ class XmlMaterialProfile(InstanceContainer): # Find all hotend sub-profiles corresponding to this material and machine and add them to this profile. buildplate_dict = {} # type: Dict[str, Any] for variant_name, variant_dict in machine_variant_map[definition_id].items(): - variant_type = variant_dict["variant_node"].metadata["hardware_type"] + variant_type = variant_dict["variant_node"].getMetaDataEntry("hardware_type", "") variant_type = VariantType(variant_type) if variant_type == VariantType.NOZZLE: # The hotend identifier is not the containers name, but its "name".