diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c9fd8233fd..6e4527feec 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -536,6 +536,7 @@ class CuraApplication(QtApplication): group_decorator = GroupDecorator() group_node.addDecorator(group_decorator) group_node.setParent(self.getController().getScene().getRoot()) + group_node.setSelectable(True) center = Selection.getSelectionCenter() group_node.setPosition(center) group_node.setCenterPosition(center) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index b94eac0f9e..a45c18271f 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -79,14 +79,16 @@ class StartSliceJob(Job): self._sendSettings(self._profile) - slice_message = self._socket.createMessage("cura.proto.Slice"); + slice_message = self._socket.createMessage("cura.proto.Slice") for group in object_groups: - group_message = slice_message.addRepeatedMessage("object_lists"); + group_message = slice_message.addRepeatedMessage("object_lists") + if group[0].getParent().callDecoration("isGroup"): + self._handlePerObjectSettings(group[0].getParent(), group_message) for object in group: mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation()) - obj = group_message.addRepeatedMessage("objects"); + obj = group_message.addRepeatedMessage("objects") obj.id = id(object) verts = numpy.array(mesh_data.getVertices()) @@ -142,7 +144,6 @@ class StartSliceJob(Job): object_settings = node.callDecoration("getAllSettingValues") if not object_settings: return - for key, value in object_settings.items(): setting = message.addRepeatedMessage("settings") setting.name = key diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 78917e4e18..6261c4d706 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -10,13 +10,15 @@ from UM.Signal import Signal from UM.Scene.Selection import Selection from UM.Math.Color import Color from UM.Mesh.MeshData import MeshData +from UM.Job import Job from UM.View.RenderBatch import RenderBatch from UM.View.GL.OpenGL import OpenGL from cura.ConvexHullNode import ConvexHullNode -from PyQt5 import QtCore, QtWidgets +from PyQt5.QtCore import Qt, QTimer +from PyQt5.QtWidgets import QApplication from . import LayerViewProxy @@ -34,19 +36,25 @@ class LayerView(View): self._current_layer_num = 10 self._current_layer_mesh = None self._current_layer_jumps = None + self._top_layers_job = None self._activity = False self._solid_layers = 5 + self._top_layer_timer = QTimer() + self._top_layer_timer.setInterval(50) + self._top_layer_timer.setSingleShot(True) + self._top_layer_timer.timeout.connect(self._startUpdateTopLayers) + def getActivity(self): return self._activity def getCurrentLayer(self): return self._current_layer_num - + def _onSceneChanged(self, node): self.calculateMaxLayers() - + def getMaxLayers(self): return self._max_layers @@ -89,51 +97,11 @@ class LayerView(View): # This uses glDrawRangeElements internally to only draw a certain range of lines. renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, range = (start, end)) - # We currently recreate the current "solid" layers every time a - if not self._current_layer_mesh: - self._current_layer_mesh = MeshData() - for i in range(self._solid_layers): - layer = self._current_layer_num - i - if layer < 0: - continue - try: - layer_mesh = layer_data.getLayer(layer).createMesh() - if not layer_mesh or layer_mesh.getVertices() is None: - continue - except: - continue - if self._current_layer_mesh: #Threading thing; Switching between views can cause the current layer mesh to be deleted. - self._current_layer_mesh.addVertices(layer_mesh.getVertices()) - - # Scale layer color by a brightness factor based on the current layer number - # This will result in a range of 0.5 - 1.0 to multiply colors by. - brightness = (2.0 - (i / self._solid_layers)) / 2.0 - if self._current_layer_mesh: - self._current_layer_mesh.addColors(layer_mesh.getColors() * brightness) if self._current_layer_mesh: renderer.queueNode(node, mesh = self._current_layer_mesh) - if not self._current_layer_jumps: - self._current_layer_jumps = MeshData() - for i in range(1): - layer = self._current_layer_num - i - if layer < 0: - continue - try: - layer_mesh = layer_data.getLayer(layer).createJumps() - if not layer_mesh or layer_mesh.getVertices() is None: - continue - except: - continue - - self._current_layer_jumps.addVertices(layer_mesh.getVertices()) - - # Scale layer color by a brightness factor based on the current layer number - # This will result in a range of 0.5 - 1.0 to multiply colors by. - brightness = (2.0 - (i / self._solid_layers)) / 2.0 - self._current_layer_jumps.addColors(layer_mesh.getColors() * brightness) - - renderer.queueNode(node, mesh = self._current_layer_jumps) + if self._current_layer_jumps: + renderer.queueNode(node, mesh = self._current_layer_jumps) def setLayer(self, value): if self._current_layer_num != value: @@ -145,6 +113,14 @@ class LayerView(View): self._current_layer_mesh = None self._current_layer_jumps = None + + self._top_layer_timer.start() + + if self._top_layers_job: + self._top_layers_job.finished.disconnect(self._updateCurrentLayerMesh) + self._top_layers_job.cancel() + self._top_layers_job = None + self.currentLayerNumChanged.emit() currentLayerNumChanged = Signal() @@ -180,18 +156,18 @@ class LayerView(View): maxLayersChanged = Signal() currentLayerNumChanged = Signal() - + ## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created # as this caused some issues. def getProxy(self, engine, script_engine): return self._proxy - + def endRendering(self): pass - + def event(self, event): - modifiers = QtWidgets.QApplication.keyboardModifiers() - ctrl_is_active = modifiers == QtCore.Qt.ControlModifier + modifiers = QApplication.keyboardModifiers() + ctrl_is_active = modifiers == Qt.ControlModifier if event.type == Event.KeyPressEvent and ctrl_is_active: if event.key == KeyEvent.UpKey: self.setLayer(self._current_layer_num + 1) @@ -199,3 +175,70 @@ class LayerView(View): if event.key == KeyEvent.DownKey: self.setLayer(self._current_layer_num - 1) return True + + def _startUpdateTopLayers(self): + self._top_layers_job = _CreateTopLayersJob(self._controller.getScene(), self._current_layer_num, self._solid_layers) + self._top_layers_job.finished.connect(self._updateCurrentLayerMesh) + self._top_layers_job.start() + + def _updateCurrentLayerMesh(self, job): + if not job.getResult(): + return + + self._current_layer_mesh = job.getResult().get("layers") + self._current_layer_jumps = job.getResult().get("jumps") + self._controller.getScene().sceneChanged.emit(self._controller.getScene().getRoot()) + + self._top_layers_job = None + +class _CreateTopLayersJob(Job): + def __init__(self, scene, layer_number, solid_layers): + super().__init__() + + self._scene = scene + self._layer_number = layer_number + self._solid_layers = solid_layers + self._cancel = False + + def run(self): + layer_data = None + for node in DepthFirstIterator(self._scene.getRoot()): + layer_data = node.callDecoration("getLayerData") + if not layer_data: + continue + + if self._cancel or not layer_data: + return + + layer_mesh = MeshData() + for i in range(self._solid_layers): + layer_number = self._layer_number - i + if layer_number < 0: + continue + #try: + layer = layer_data.getLayer(layer_number).createMesh() + if not layer or layer.getVertices() is None: + continue + + layer_mesh.addVertices(layer.getVertices()) + + # Scale layer color by a brightness factor based on the current layer number + # This will result in a range of 0.5 - 1.0 to multiply colors by. + brightness = (2.0 - (i / self._solid_layers)) / 2.0 + layer_mesh.addColors(layer.getColors() * brightness) + + if self._cancel: + return + + if self._cancel: + return + + jump_mesh = layer_data.getLayer(self._layer_number).createJumps() + if not jump_mesh or jump_mesh.getVertices() is None: + jump_mesh = None + + self.setResult({ "layers": layer_mesh, "jumps": jump_mesh }) + + def cancel(self): + self._cancel = True + super().cancel() diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsModel.py b/plugins/PerObjectSettingsTool/PerObjectSettingsModel.py index 97b769e65f..7f7cef049b 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsModel.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsModel.py @@ -70,7 +70,7 @@ class PerObjectSettingsModel(ListModel): def _updateModel(self): self.clear() for node in BreadthFirstIterator(self._root): - if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable(): + if type(node) is not SceneNode or not node.isSelectable(): continue node_profile = node.callDecoration("getProfile") if not node_profile: diff --git a/plugins/USBPrinting/FirmwareUpdateWindow.qml b/plugins/USBPrinting/FirmwareUpdateWindow.qml index 4ab1020a3a..e8f532d24a 100644 --- a/plugins/USBPrinting/FirmwareUpdateWindow.qml +++ b/plugins/USBPrinting/FirmwareUpdateWindow.qml @@ -52,12 +52,13 @@ UM.Dialog wrapMode: Text.Wrap; } - ProgressBar + ProgressBar { - id: prog; + id: prog value: manager.progress - minimumValue: 0; - maximumValue: 100; + minimumValue: 0 + maximumValue: 100 + indeterminate: manager.progress < 100 anchors { left: parent.left; @@ -65,7 +66,7 @@ UM.Dialog } } - + SystemPalette { id: palette; diff --git a/plugins/USBPrinting/USBPrinterManager.py b/plugins/USBPrinting/USBPrinterManager.py index 5982196cb8..57499b9a47 100644 --- a/plugins/USBPrinting/USBPrinterManager.py +++ b/plugins/USBPrinting/USBPrinterManager.py @@ -132,12 +132,15 @@ class USBPrinterManager(QObject, SignalEmitter, OutputDevicePlugin, Extension): return USBPrinterManager._instance def _getDefaultFirmwareName(self): - machine_type = Application.getInstance().getMachineManager().getActiveMachineInstance().getMachineDefinition().getId() + machine_instance = Application.getInstance().getMachineManager().getActiveMachineInstance() + machine_type = machine_instance.getMachineDefinition().getId() baudrate = 250000 if sys.platform.startswith("linux"): baudrate = 115200 if machine_type == "ultimaker_original": firmware_name = "MarlinUltimaker" + if machine_instance.getMachineSettingValue("machine_heated_bed"): #Has heated bed upgrade kit? + firmware_name += "-HBK" firmware_name += "-%d" % (baudrate) return firmware_name + ".hex" elif machine_type == "ultimaker_original_plus": diff --git a/resources/machines/dual_extrusion_printer.json b/resources/machines/dual_extrusion_printer.json index bc675ad40b..ec26b38d8b 100644 --- a/resources/machines/dual_extrusion_printer.json +++ b/resources/machines/dual_extrusion_printer.json @@ -207,7 +207,7 @@ "default": 150, "min_value": "0", "max_value_warning": "260", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "visible": false }, "switch_extruder_retraction_amount": { diff --git a/resources/machines/fdmprinter.json b/resources/machines/fdmprinter.json index 2786ca27fa..555d74a053 100644 --- a/resources/machines/fdmprinter.json +++ b/resources/machines/fdmprinter.json @@ -211,7 +211,7 @@ "min_value": "0.001", "min_value_warning": "0.04", "max_value_warning": "0.8 * machine_nozzle_size", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "layer_height_0": { "label": "Initial Layer Height", @@ -223,7 +223,7 @@ "min_value_warning": "0.04", "max_value_warning": "0.8 * machine_nozzle_size", "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "line_width": { "label": "Line Width", @@ -660,7 +660,7 @@ "default": 0.5, "min_value": "0", "max_value_warning": "10.0", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "enabled": "material_flow_dependent_temperature or machine_extruder_count > 1", "visible": false }, @@ -673,7 +673,7 @@ "min_value": "0", "max_value_warning": "260", "enabled": "machine_heated_bed", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "material_diameter": { "label": "Diameter", @@ -684,7 +684,7 @@ "min_value": "0.0001", "min_value_warning": "0.4", "max_value_warning": "3.5", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "material_flow": { "label": "Flow", @@ -983,7 +983,7 @@ "default": true, "visible": false, "enabled": "retraction_combing", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "travel_avoid_distance": { "label": "Avoid Distance", @@ -996,7 +996,7 @@ "visible": false, "inherit": false, "enabled": "retraction_combing", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } }, @@ -1054,7 +1054,7 @@ "description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.", "type": "boolean", "default": true, - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "cool_fan_speed": { "label": "Fan Speed", @@ -1066,7 +1066,7 @@ "default": 100, "visible": false, "inherit_function": "100.0 if parent_value else 0.0", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "cool_fan_speed_min": { "label": "Minimum Fan Speed", @@ -1077,7 +1077,7 @@ "max_value": "100", "default": 100, "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "cool_fan_speed_max": { "label": "Maximum Fan Speed", @@ -1088,7 +1088,7 @@ "max_value": "100", "default": 100, "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } } @@ -1103,7 +1103,7 @@ "min_value": "0", "max_value_warning": "10.0", "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "cool_fan_full_layer": { "label": "Fan Full on at Layer", @@ -1114,7 +1114,7 @@ "max_value_warning": "100", "visible": false, "inherit_function": "int((parent_value - layer_height_0 + 0.001) / layer_height)", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } }, @@ -1127,7 +1127,7 @@ "min_value": "0", "max_value_warning": "600", "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "cool_min_layer_time_fan_speed_max": { "label": "Minimum Layer Time Full Fan Speed", @@ -1138,7 +1138,7 @@ "min_value": "cool_min_layer_time", "max_value_warning": "600", "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "cool_min_speed": { "label": "Minimum Speed", @@ -1149,7 +1149,7 @@ "min_value": "0", "max_value_warning": "100", "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "cool_lift_head": { "label": "Lift Head", @@ -1157,7 +1157,7 @@ "type": "boolean", "default": false, "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "draft_shield_enabled": { "label": "Enable Draft Shield", @@ -1526,7 +1526,7 @@ "raft": "Raft" }, "default": "skirt", - "global_only": "False" + "global_only": "True" }, "skirt_line_count": { "label": "Skirt Line Count", @@ -1536,7 +1536,7 @@ "min_value": "0", "max_value_warning": "10", "enabled": "adhesion_type == \"skirt\"", - "global_only": "False", + "global_only": "True", "visible": false }, "skirt_gap": { @@ -1548,7 +1548,7 @@ "min_value_warning": "0", "max_value_warning": "100", "enabled": "adhesion_type == \"skirt\"", - "global_only": "False", + "global_only": "True", "visible": false }, "skirt_minimal_length": { @@ -1561,7 +1561,7 @@ "min_value_warning": "25", "max_value_warning": "2500", "enabled": "adhesion_type == \"skirt\"", - "global_only": "False", + "global_only": "True", "visible": false }, "brim_width": { @@ -1573,7 +1573,7 @@ "min_value": "0.0", "max_value_warning": "100.0", "enabled": "adhesion_type == \"brim\"", - "global_only": "False", + "global_only": "True", "visible": true, "children": { "brim_line_count": { @@ -1585,7 +1585,7 @@ "max_value_warning": "300", "inherit_function": "math.ceil(parent_value / skirt_line_width)", "enabled": "adhesion_type == \"brim\"", - "global_only": "False", + "global_only": "True", "visible": false } } @@ -1599,7 +1599,7 @@ "min_value_warning": "0", "max_value_warning": "10", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_airgap": { @@ -1611,7 +1611,7 @@ "min_value": "0", "max_value_warning": "1.0", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": true }, "raft_surface_layers": { @@ -1622,7 +1622,7 @@ "min_value": "0", "max_value_warning": "20", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": true }, "raft_surface_thickness": { @@ -1634,7 +1634,7 @@ "min_value": "0", "max_value_warning": "2.0", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_surface_line_width": { @@ -1646,7 +1646,7 @@ "min_value": "0.0001", "max_value_warning": "machine_nozzle_size * 2", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_surface_line_spacing": { @@ -1659,7 +1659,7 @@ "max_value_warning": "5.0", "enabled": "adhesion_type == \"raft\"", "inherit_function": "raft_surface_line_width", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_interface_thickness": { @@ -1671,7 +1671,7 @@ "min_value": "0", "max_value_warning": "5.0", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_interface_line_width": { @@ -1683,7 +1683,7 @@ "min_value": "0.0001", "max_value_warning": "machine_nozzle_size * 2", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_interface_line_spacing": { @@ -1695,7 +1695,7 @@ "min_value": "0", "max_value_warning": "15.0", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_base_thickness": { @@ -1707,7 +1707,7 @@ "min_value": "0", "max_value_warning": "5.0", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_base_line_width": { @@ -1719,7 +1719,7 @@ "min_value": "0.0001", "max_value_warning": "machine_nozzle_size * 2", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_base_line_spacing": { @@ -1731,7 +1731,7 @@ "min_value": "0.0001", "max_value_warning": "100", "enabled": "adhesion_type == \"raft\"", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_speed": { @@ -1744,7 +1744,7 @@ "max_value_warning": "200", "enabled": "adhesion_type == \"raft\"", "inherit_function": "speed_print / 60 * 30", - "global_only": "False", + "global_only": "True", "visible": false, "children": { "raft_surface_speed": { @@ -1757,7 +1757,7 @@ "max_value_warning": "100", "enabled": "adhesion_type == \"raft\"", "inherit_function": "parent_value", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_interface_speed": { @@ -1770,7 +1770,7 @@ "max_value_warning": "150", "enabled": "adhesion_type == \"raft\"", "inherit_function": "0.5 * parent_value", - "global_only": "False", + "global_only": "True", "visible": false }, "raft_base_speed": { @@ -1783,7 +1783,7 @@ "max_value_warning": "200", "enabled": "adhesion_type == \"raft\"", "inherit_function": "0.5 * parent_value", - "global_only": "False", + "global_only": "True", "visible": false } } @@ -1796,7 +1796,7 @@ "min_value": "0", "max_value": "100", "default": 100, - "global_only": "False", + "global_only": "True", "visible": false, "enabled": "adhesion_type == \"raft\"", "children": { @@ -1808,7 +1808,7 @@ "min_value": "0", "max_value": "100", "default": 100, - "global_only": "False", + "global_only": "True", "visible": false, "inherit": true, "enabled": "adhesion_type == \"raft\"" @@ -1821,7 +1821,7 @@ "min_value": "0", "max_value": "100", "default": 100, - "global_only": "False", + "global_only": "True", "visible": false, "inherit": true, "enabled": "adhesion_type == \"raft\"" @@ -1834,7 +1834,7 @@ "min_value": "0", "max_value": "100", "default": 100, - "global_only": "False", + "global_only": "True", "visible": false, "inherit": true, "enabled": "adhesion_type == \"raft\"" @@ -1913,7 +1913,7 @@ "type": "boolean", "default": false, "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "magic_fuzzy_skin_enabled": { "label": "Fuzzy Skin", @@ -1965,7 +1965,7 @@ "type": "boolean", "default": false, "visible": false, - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_height": { "label": "WP Connection Height", @@ -1977,7 +1977,7 @@ "max_value_warning": "20", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_roof_inset": { "label": "WP Roof Inset Distance", @@ -1991,7 +1991,7 @@ "visible": false, "enabled": "wireframe_enabled", "inherit_function": "wireframe_height", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_printspeed": { "label": "WP speed", @@ -2003,7 +2003,7 @@ "max_value_warning": "50", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "wireframe_printspeed_bottom": { "label": "WP Bottom Printing Speed", @@ -2016,7 +2016,7 @@ "visible": false, "inherit": true, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_printspeed_up": { "label": "WP Upward Printing Speed", @@ -2029,7 +2029,7 @@ "visible": false, "inherit": true, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_printspeed_down": { "label": "WP Downward Printing Speed", @@ -2042,7 +2042,7 @@ "visible": false, "inherit": true, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_printspeed_flat": { "label": "WP Horizontal Printing Speed", @@ -2055,7 +2055,7 @@ "visible": false, "inherit": true, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } }, @@ -2069,7 +2069,7 @@ "type": "float", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"", + "global_only": "True", "children": { "wireframe_flow_connection": { "label": "WP Connection Flow", @@ -2081,7 +2081,7 @@ "type": "float", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_flow_flat": { "label": "WP Flat Flow", @@ -2093,7 +2093,7 @@ "type": "float", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } }, @@ -2107,7 +2107,7 @@ "max_value_warning": "1", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_bottom_delay": { "label": "WP Bottom Delay", @@ -2119,7 +2119,7 @@ "max_value_warning": "1", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_flat_delay": { "label": "WP Flat Delay", @@ -2131,7 +2131,7 @@ "max_value_warning": "0.5", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_up_half_speed": { "label": "WP Ease Upward", @@ -2143,7 +2143,7 @@ "max_value_warning": "5.0", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_top_jump": { "label": "WP Knot Size", @@ -2155,7 +2155,7 @@ "max_value_warning": "2.0", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_fall_down": { "label": "WP Fall Down", @@ -2167,7 +2167,7 @@ "max_value_warning": "wireframe_height", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_drag_along": { "label": "WP Drag along", @@ -2179,7 +2179,7 @@ "max_value_warning": "wireframe_height", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_strategy": { "label": "WP Strategy", @@ -2193,7 +2193,7 @@ "default": "compensate", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_straight_before_down": { "label": "WP Straighten Downward Lines", @@ -2205,7 +2205,7 @@ "max_value": "100", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_roof_fall_down": { "label": "WP Roof Fall Down", @@ -2217,7 +2217,7 @@ "max_value_warning": "wireframe_roof_inset", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_roof_drag_along": { "label": "WP Roof Drag Along", @@ -2229,7 +2229,7 @@ "max_value_warning": "10", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_roof_outer_delay": { "label": "WP Roof Outer Delay", @@ -2241,7 +2241,7 @@ "max_value_warning": "2.0", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" }, "wireframe_nozzle_clearance": { "label": "WP Nozzle Clearance", @@ -2253,7 +2253,7 @@ "max_value_warning": "10.0", "visible": false, "enabled": "wireframe_enabled", - "global_only": "print_sequence != \"one_at_a_time\"" + "global_only": "True" } } } diff --git a/resources/machines/ultimaker2plus.json b/resources/machines/ultimaker2plus.json index b75e66122d..f11cbe46d7 100644 --- a/resources/machines/ultimaker2plus.json +++ b/resources/machines/ultimaker2plus.json @@ -15,29 +15,6 @@ "machine_depth": { "default": 225 }, "machine_height": { "default": 200 }, "machine_show_variants": { "default": true }, - "gantry_height": { "default": 50 }, - "shell_thickness": { "default": 1.2 }, - "top_bottom_thickness": { "inherit_function": "(parent_value / 3) * 2" }, - "travel_compensate_overlapping_walls_enabled": { "default": true }, - "skin_alternate_rotation": { "default": true }, - "skin_outline_count": { "default": 2 }, - "infill_sparse_density": { "default": 10 }, - "infill_overlap": { "default": 14, "inherit_function": "14 if infill_sparse_density < 95 else 0" }, - "infill_wipe_dist": { "default": 0.35, "inherit_function": "wall_line_width_0" }, - "retraction_amount": { "default": 6 }, - "retraction_min_travel": { "default": 4.5 }, - "retraction_count_max": { "default": 6 }, - "retraction_extrusion_window": { "default": 6.0 }, - "speed_print": { "default": 50 }, - "speed_wall": { "inherit_function": "parent_value / 50 * 30" }, - "speed_wall_x": { "inherit_function": "speed_print / 50 * 40" }, - "speed_topbottom": { "inherit_function": "parent_value / 50 * 20" }, - "speed_layer_0": { "default": 20 }, - "skirt_speed": { "default": 20 }, - "travel_avoid_distance": { "default": 1.0 }, - "coasting_enable": { "default": true }, - "coasting_volume": { "default": 0.4 }, - "support_angle": { "default": 50 }, - "adhesion_type": { "default": "brim" } + "gantry_height": { "default": 50 } } } diff --git a/resources/profiles/ultimaker2+/pla_0.25_high.curaprofile b/resources/profiles/ultimaker2+/pla_0.25_high.curaprofile deleted file mode 100644 index db552e3f82..0000000000 --- a/resources/profiles/ultimaker2+/pla_0.25_high.curaprofile +++ /dev/null @@ -1,48 +0,0 @@ -[general] -version = 1 -name = High Quality -machine_type = ultimaker2plus -machine_variant = 0.25 mm -material = PLA - -[settings] -retraction_combing = All -top_thickness = 0.72 -speed_layer_0 = 20 -speed_print = 20 -speed_wall_0 = 20 -raft_interface_line_spacing = 3.0 -shell_thickness = 0.88 -infill_overlap = 15 -retraction_hop = 0.0 -material_bed_temperature = 70 -skin_no_small_gaps_heuristic = False -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -layer_height = 0.06 -brim_line_count = 36 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -skirt_gap = 3.0 -raft_interface_line_width = 0.4 -speed_topbottom = 20 -support_pattern = lines -layer_height_0 = 0.15 -infill_sparse_density = 22 -material_flow = 100.0 -cool_fan_speed_min = 100 -top_bottom_thickness = 0.72 -cool_fan_speed_max = 100 -speed_infill = 30 -magic_mesh_surface_mode = False -bottom_thickness = 0.72 -speed_wall_x = 25 -machine_nozzle_size = 0.22 -raft_surface_line_spacing = 3.0 -support_enable = False - diff --git a/resources/profiles/ultimaker2+/pla_0.25_normal.curaprofile b/resources/profiles/ultimaker2+/pla_0.25_normal.curaprofile new file mode 100644 index 0000000000..6ef1b1b74b --- /dev/null +++ b/resources/profiles/ultimaker2+/pla_0.25_normal.curaprofile @@ -0,0 +1,35 @@ +[general] +version = 1 +name = Normal Quality +machine_type = ultimaker2plus +machine_variant = 0.25 mm +material = PLA + +[settings] +machine_nozzle_size = 0.22 +layer_height = 0.06 +layer_height_0 = 0.15 +shell_thickness = 0.88 +top_bottom_thickness = 0.72 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 22 +infill_overlap = 0.022 +infill_wipe_dist = 0.1 +retraction_amount = 6 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 30 +speed_wall_0 = 20 +speed_wall_x = 25 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 15 +adhesion_type = brim +brim_width = 7 diff --git a/resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile b/resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile index b13bfc075f..928355e936 100644 --- a/resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile +++ b/resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile @@ -1,47 +1,36 @@ [general] version = 1 -name = Fast Prints +name = Fast Print machine_type = ultimaker2plus machine_variant = 0.4 mm material = PLA [settings] -retraction_combing = All -top_thickness = 0.75 -speed_print = 40 -speed_wall_0 = 40 -raft_surface_line_spacing = 3.0 -shell_thickness = 0.7 -infill_sparse_density = 18 -retraction_hop = 0.0 -material_bed_temperature = 70 -skin_no_small_gaps_heuristic = False -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -layer_height = 0.15 -brim_line_count = 22 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -infill_overlap = 15 -raft_interface_line_width = 0.4 -speed_topbottom = 30 -support_pattern = lines -layer_height_0 = 0.26 -raft_interface_line_spacing = 3.0 -material_flow = 100.0 -cool_fan_speed_min = 100 -cool_fan_speed_max = 100 -speed_travel = 150 -skirt_gap = 3.0 -magic_mesh_surface_mode = False -bottom_thickness = 0.75 -speed_wall_x = 50 machine_nozzle_size = 0.35 -top_bottom_thickness = 0.75 -support_enable = False - +layer_height = 0.15 +layer_height_0 = 0.26 +shell_thickness = 0.7 +top_bottom_thickness = 0.6 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 18 +infill_overlap = 0.035 +infill_wipe_dist = 0.2 +retraction_amount = 5.5 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 60 +speed_wall_0 = 40 +speed_wall_x = 50 +speed_topbottom = 30 +speed_travel = 150 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 15 +adhesion_type = brim +brim_width = 8 diff --git a/resources/profiles/ultimaker2+/pla_0.4_high.curaprofile b/resources/profiles/ultimaker2+/pla_0.4_high.curaprofile index baf1848efb..4fe6278913 100644 --- a/resources/profiles/ultimaker2+/pla_0.4_high.curaprofile +++ b/resources/profiles/ultimaker2+/pla_0.4_high.curaprofile @@ -6,43 +6,30 @@ machine_variant = 0.4 mm material = PLA [settings] -retraction_combing = All -top_thickness = 0.72 -speed_layer_0 = 20 -speed_print = 30 -speed_wall_0 = 30 -raft_interface_line_spacing = 3.0 -shell_thickness = 1.05 -infill_overlap = 15 -retraction_hop = 0.0 -material_bed_temperature = 70 -skin_no_small_gaps_heuristic = False -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -layer_height = 0.06 -brim_line_count = 22 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -skirt_gap = 3.0 -raft_interface_line_width = 0.4 -speed_topbottom = 20 -support_pattern = lines -layer_height_0 = 0.26 -infill_sparse_density = 22 -material_flow = 100.0 -cool_fan_speed_min = 100 -top_bottom_thickness = 0.72 -cool_fan_speed_max = 100 -speed_infill = 50 -magic_mesh_surface_mode = False -bottom_thickness = 0.72 -speed_wall_x = 40 machine_nozzle_size = 0.35 -raft_surface_line_spacing = 3.0 -support_enable = False - +layer_height = 0.06 +layer_height_0 = 0.26 +shell_thickness = 1.05 +top_bottom_thickness = 0.84 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 22 +infill_overlap = 0.035 +infill_wipe_dist = 0.2 +retraction_amount = 5.5 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 50 +speed_wall_0 = 30 +speed_wall_x = 40 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 15 +adhesion_type = brim +brim_width = 8 diff --git a/resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile b/resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile index db5ea4fd44..8dd527ba73 100644 --- a/resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile +++ b/resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile @@ -6,38 +6,30 @@ machine_variant = 0.4 mm material = PLA [settings] -retraction_combing = All -shell_thickness = 1.05 -speed_print = 30 -speed_wall_0 = 30 -raft_interface_line_spacing = 3.0 -speed_layer_0 = 20 -layer_height_0 = 0.26 -retraction_hop = 0.0 -material_bed_temperature = 70 -skirt_gap = 3.0 -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -brim_line_count = 22 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -infill_overlap = 15 -raft_interface_line_width = 0.4 -speed_topbottom = 20 -support_pattern = lines -speed_infill = 50 -material_flow = 100.0 -cool_fan_speed_min = 100 -cool_fan_speed_max = 100 -skin_no_small_gaps_heuristic = False -magic_mesh_surface_mode = False -speed_wall_x = 40 machine_nozzle_size = 0.35 -raft_surface_line_spacing = 3.0 -support_enable = False - +layer_height = 0.1 +layer_height_0 = 0.26 +shell_thickness = 1.05 +top_bottom_thickness = 0.8 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 20 +infill_overlap = 0.035 +infill_wipe_dist = 0.2 +retraction_amount = 5.5 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 50 +speed_wall_0 = 30 +speed_wall_x = 40 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 15 +adhesion_type = brim +brim_width = 8 diff --git a/resources/profiles/ultimaker2+/pla_0.4_ulti.curaprofile b/resources/profiles/ultimaker2+/pla_0.4_ulti.curaprofile new file mode 100644 index 0000000000..611c416bdc --- /dev/null +++ b/resources/profiles/ultimaker2+/pla_0.4_ulti.curaprofile @@ -0,0 +1,35 @@ +[general] +version = 1 +name = Ulti Quality +machine_type = ultimaker2plus +machine_variant = 0.4 mm +material = PLA + +[settings] +machine_nozzle_size = 0.35 +layer_height = 0.04 +layer_height_0 = 0.26 +shell_thickness = 1.4 +top_bottom_thickness = 1.12 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 25 +infill_overlap = 0.035 +infill_wipe_dist = 0.2 +retraction_amount = 5.5 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 50 +speed_wall_0 = 30 +speed_wall_x = 40 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 15 +adhesion_type = brim +brim_width = 8 diff --git a/resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile b/resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile index 09d1061880..3257c79446 100644 --- a/resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile +++ b/resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile @@ -6,42 +6,30 @@ machine_variant = 0.6 mm material = PLA [settings] -retraction_combing = All -top_thickness = 1.2 -speed_layer_0 = 20 -speed_print = 25 -speed_wall_0 = 25 -raft_interface_line_spacing = 3.0 -shell_thickness = 1.59 -infill_overlap = 15 -retraction_hop = 0.0 -material_bed_temperature = 70 -skin_no_small_gaps_heuristic = False -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -layer_height = 0.15 -brim_line_count = 15 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -skirt_gap = 3.0 -raft_interface_line_width = 0.4 -speed_topbottom = 20 -support_pattern = lines -layer_height_0 = 0.39 -material_flow = 100.0 -cool_fan_speed_min = 100 -top_bottom_thickness = 1.2 -cool_fan_speed_max = 100 -speed_infill = 55 -magic_mesh_surface_mode = False -bottom_thickness = 1.2 -speed_wall_x = 40 machine_nozzle_size = 0.53 -raft_surface_line_spacing = 3.0 -support_enable = False - +layer_height = 0.15 +layer_height_0 = 0.4 +shell_thickness = 1.59 +top_bottom_thickness = 1.2 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 20 +infill_overlap = 0.053 +infill_wipe_dist = 0.3 +retraction_amount = 6 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 55 +speed_wall_0 = 25 +speed_wall_x = 40 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1.2 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 20 +adhesion_type = brim +brim_width = 7 diff --git a/resources/profiles/ultimaker2+/pla_0.8_fast.curaprofile b/resources/profiles/ultimaker2+/pla_0.8_fast.curaprofile deleted file mode 100644 index a3d4242072..0000000000 --- a/resources/profiles/ultimaker2+/pla_0.8_fast.curaprofile +++ /dev/null @@ -1,47 +0,0 @@ -[general] -version = 1 -name = Fast Prints -machine_type = ultimaker2plus -machine_variant = 0.8 mm -material = PLA - -[settings] -retraction_combing = All -top_thickness = 1.2 -speed_layer_0 = 20 -speed_print = 20 -speed_wall_0 = 25 -raft_interface_line_spacing = 3.0 -shell_thickness = 2.1 -infill_overlap = 15 -retraction_hop = 0.0 -material_bed_temperature = 70 -skin_no_small_gaps_heuristic = False -retraction_speed = 40.0 -raft_surface_line_width = 0.4 -raft_base_line_width = 1.0 -raft_margin = 5.0 -adhesion_type = brim -skirt_minimal_length = 150.0 -layer_height = 0.2 -brim_line_count = 11 -infill_before_walls = False -raft_surface_thickness = 0.27 -raft_airgap = 0.0 -skirt_gap = 3.0 -raft_interface_line_width = 0.4 -speed_topbottom = 20 -support_pattern = lines -layer_height_0 = 0.5 -material_flow = 100.0 -cool_fan_speed_min = 100 -top_bottom_thickness = 1.2 -cool_fan_speed_max = 100 -speed_infill = 40 -magic_mesh_surface_mode = False -bottom_thickness = 1.2 -speed_wall_x = 30 -machine_nozzle_size = 0.7 -raft_surface_line_spacing = 3.0 -support_enable = False - diff --git a/resources/profiles/ultimaker2+/pla_0.8_normal.curaprofile b/resources/profiles/ultimaker2+/pla_0.8_normal.curaprofile new file mode 100644 index 0000000000..936c46b742 --- /dev/null +++ b/resources/profiles/ultimaker2+/pla_0.8_normal.curaprofile @@ -0,0 +1,35 @@ +[general] +version = 1 +name = Normal Quality +machine_type = ultimaker2plus +machine_variant = 0.8 mm +material = PLA + +[settings] +machine_nozzle_size = 0.7 +layer_height = 0.2 +layer_height_0 = 0.5 +shell_thickness = 2.1 +top_bottom_thickness = 1.6 +travel_compensate_overlapping_walls_enabled = True +skin_no_small_gaps_heuristic = False +top_bottom_pattern = lines +infill_sparse_density = 20 +infill_overlap = 0.07 +infill_wipe_dist = 0.4 +retraction_amount = 6 +retraction_min_travel = 0.5 +retraction_count_max = 30 +retraction_extrusion_window = 6 +speed_infill = 40 +speed_wall_0 = 20 +speed_wall_x = 30 +speed_topbottom = 20 +speed_layer_0 = 25 +skirt_speed = 25 +speed_slowdown_layers = 2 +travel_avoid_distance = 1.6 +cool_fan_full_layer = 2 +cool_min_layer_time_fan_speed_max = 25 +adhesion_type = brim +brim_width = 7