From ba878ccff085365e0cf6f420a7c20d3e309ccd26 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 12:08:16 +0200 Subject: [PATCH 01/42] fix luminance computation --- plugins/ImageReader/ImageReader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index e720ce4854..c59151f1cb 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -99,8 +99,8 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - avg = float(qRed(qrgb) + qGreen(qrgb) + qBlue(qrgb)) / (3 * 255) - height_data[y, x] = avg + luminance = (0.2126 * qRed(qrgb) + 0.7152 * qGreen(qrgb) + 0.0722 * qBlue(qrgb)) / 255 # fast computation ignoring gamma + height_data[y, x] = luminance Job.yieldThread() From 31683287505372d20d0e9488427c60af8d76a0f8 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 12:10:18 +0200 Subject: [PATCH 02/42] feat: use logarithmic conversion for lithophanes --- plugins/ImageReader/ConfigUI.qml | 22 ++++++++++++++++++++++ plugins/ImageReader/ImageReader.py | 16 ++++++++++++---- plugins/ImageReader/ImageReaderUI.py | 6 ++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 47ba10778c..ef28c174f2 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -143,6 +143,28 @@ UM.Dialog } } + UM.TooltipArea { + Layout.fillWidth:true + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","For lithophanes a logarithmic function is more appropriate for most materials. For height maps the pixel values correspond to heights linearly.") + Row { + width: parent.width + + Label { + text: "Conversion" + width: 150 * screenScaleFactor + anchors.verticalCenter: parent.verticalCenter + } + ComboBox { + id: conversion + objectName: "Conversion" + model: [ catalog.i18nc("@item:inlistbox","Logarithmic"), catalog.i18nc("@item:inlistbox","Linear") ] + width: 180 * screenScaleFactor + onCurrentIndexChanged: { manager.onConvertFunctionChanged(currentIndex) } + } + } + } + UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index c59151f1cb..bfaa6eb48c 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -3,6 +3,8 @@ import numpy +import math + from PyQt5.QtGui import QImage, qRed, qGreen, qBlue from PyQt5.QtCore import Qt @@ -46,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function): scene_node = SceneNode() mesh = MeshBuilder() @@ -124,8 +126,14 @@ class ImageReader(MeshReader): Job.yieldThread() - height_data *= scale_vector.y - height_data += base_height + if use_logarithmic_function: + min_luminance = 2.0 ** (peak_height - base_height) + for (y, x) in numpy.ndindex(height_data.shape): + mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] + height_data[y, x] = peak_height - math.log(mapped_luminance, 2) + else: + height_data *= scale_vector.y + height_data += base_height heightmap_face_count = 2 * height_minus_one * width_minus_one total_face_count = heightmap_face_count + (width_minus_one * 2) * (height_minus_one * 2) + 2 diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 213468a2ab..c769a8c264 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -34,6 +34,7 @@ class ImageReaderUI(QObject): self.peak_height = 2.5 self.smoothing = 1 self.lighter_is_higher = False; + self.use_logarithmic_function = False; self._ui_lock = threading.Lock() self._cancelled = False @@ -144,3 +145,8 @@ class ImageReaderUI(QObject): @pyqtSlot(int) def onImageColorInvertChanged(self, value): self.lighter_is_higher = (value == 1) + + @pyqtSlot(int) + def onConvertFunctionChanged(self, value): + self.use_logarithmic_function = (value == 0) + From 9066f5f6d4f484cb2e3cfd8e83a79cfa39fb294f Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:18:07 +0200 Subject: [PATCH 03/42] fix translucency model using new permittance setting --- plugins/ImageReader/ConfigUI.qml | 23 +++++++++++++++++++++++ plugins/ImageReader/ImageReader.py | 9 +++++---- plugins/ImageReader/ImageReaderUI.py | 5 +++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index ef28c174f2..491594fa58 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -165,6 +165,29 @@ UM.Dialog } } + UM.TooltipArea { + Layout.fillWidth:true + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter.") + Row { + width: parent.width + + Label { + text: catalog.i18nc("@action:label", "1mm Transmittance (%)") + width: 150 * screenScaleFactor + anchors.verticalCenter: parent.verticalCenter + } + TextField { + id: transmittance + objectName: "Transmittance" + focus: true + validator: RegExpValidator {regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/} + width: 180 * screenScaleFactor + onTextChanged: { manager.onTransmittanceChanged(text) } + } + } + } + UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index bfaa6eb48c..ce3cab0b8f 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -48,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function, self._ui.transmittance_1mm) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function, transmittance_1mm): scene_node = SceneNode() mesh = MeshBuilder() @@ -127,10 +127,11 @@ class ImageReader(MeshReader): Job.yieldThread() if use_logarithmic_function: - min_luminance = 2.0 ** (peak_height - base_height) + p = 1.0 / math.log(transmittance_1mm / 100.0, 2) + min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = peak_height - math.log(mapped_luminance, 2) + height_data[y, x] = peak_height - p * math.log(mapped_luminance, 2) else: height_data *= scale_vector.y height_data += base_height diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index c769a8c264..67d6444538 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,6 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_logarithmic_function = False; + self.transmittance_1mm = 40.0; self._ui_lock = threading.Lock() self._cancelled = False @@ -76,6 +77,7 @@ class ImageReaderUI(QObject): self._ui_view.findChild(QObject, "Base_Height").setProperty("text", str(self.base_height)) self._ui_view.findChild(QObject, "Peak_Height").setProperty("text", str(self.peak_height)) + self._ui_view.findChild(QObject, "Transmittance").setProperty("text", str(self.transmittance_1mm)) self._ui_view.findChild(QObject, "Smoothing").setProperty("value", self.smoothing) def _createConfigUI(self): @@ -150,3 +152,6 @@ class ImageReaderUI(QObject): def onConvertFunctionChanged(self, value): self.use_logarithmic_function = (value == 0) + @pyqtSlot(int) + def onTransmittanceChanged(self, value): + self.transmittance_1mm = value From beaa5e0b7a300e3eab1eeaff79749ce4fb934632 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:21:05 +0200 Subject: [PATCH 04/42] fix luminance computation --- plugins/ImageReader/ImageReader.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index ce3cab0b8f..50825f2464 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -101,8 +101,10 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - luminance = (0.2126 * qRed(qrgb) + 0.7152 * qGreen(qrgb) + 0.0722 * qBlue(qrgb)) / 255 # fast computation ignoring gamma - height_data[y, x] = luminance + if use_logarithmic_function: + height_data[y, x] = (0.299 * math.pow(qRed(qrgb) / 255.0, 2.2) + 0.587 * math.pow(qGreen(qrgb) / 255.0, 2.2) + 0.114 * math.pow(qBlue(qrgb) / 255.0, 2.2)) + else: + height_data[y, x] = (0.212655 * qRed(qrgb) + 0.715158 * qGreen(qrgb) + 0.072187 * qBlue(qrgb)) / 255 # fast computation ignoring gamma and degamma Job.yieldThread() From 5b9a18f5dfc0b1fd15cc5cec3bed015b7f394d1c Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:27:51 +0200 Subject: [PATCH 05/42] make naming of Logarithmic Conversion Function intelligible --- plugins/ImageReader/ConfigUI.qml | 12 ++++++------ plugins/ImageReader/ImageReader.py | 8 ++++---- plugins/ImageReader/ImageReaderUI.py | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 491594fa58..8a4ac67b3e 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -146,21 +146,21 @@ UM.Dialog UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height - text: catalog.i18nc("@info:tooltip","For lithophanes a logarithmic function is more appropriate for most materials. For height maps the pixel values correspond to heights linearly.") + text: catalog.i18nc("@info:tooltip","For lithophanes a simple logarithmic model for translucency is available. For height maps the pixel values correspond to heights linearly.") Row { width: parent.width Label { - text: "Conversion" + text: "Color Model" width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } ComboBox { - id: conversion - objectName: "Conversion" - model: [ catalog.i18nc("@item:inlistbox","Logarithmic"), catalog.i18nc("@item:inlistbox","Linear") ] + id: color_model + objectName: "ColorModel" + model: [ catalog.i18nc("@item:inlistbox","Translucency"), catalog.i18nc("@item:inlistbox","Linear") ] width: 180 * screenScaleFactor - onCurrentIndexChanged: { manager.onConvertFunctionChanged(currentIndex) } + onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) } } } } diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 50825f2464..0086736f6d 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -48,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function, self._ui.transmittance_1mm) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_transparency_model, self._ui.transmittance_1mm) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function, transmittance_1mm): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_transparency_model, transmittance_1mm): scene_node = SceneNode() mesh = MeshBuilder() @@ -101,7 +101,7 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - if use_logarithmic_function: + if use_transparency_model: height_data[y, x] = (0.299 * math.pow(qRed(qrgb) / 255.0, 2.2) + 0.587 * math.pow(qGreen(qrgb) / 255.0, 2.2) + 0.114 * math.pow(qBlue(qrgb) / 255.0, 2.2)) else: height_data[y, x] = (0.212655 * qRed(qrgb) + 0.715158 * qGreen(qrgb) + 0.072187 * qBlue(qrgb)) / 255 # fast computation ignoring gamma and degamma @@ -128,7 +128,7 @@ class ImageReader(MeshReader): Job.yieldThread() - if use_logarithmic_function: + if use_transparency_model: p = 1.0 / math.log(transmittance_1mm / 100.0, 2) min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 67d6444538..41d8741b38 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -34,7 +34,7 @@ class ImageReaderUI(QObject): self.peak_height = 2.5 self.smoothing = 1 self.lighter_is_higher = False; - self.use_logarithmic_function = False; + self.use_transparency_model = True; self.transmittance_1mm = 40.0; self._ui_lock = threading.Lock() @@ -149,8 +149,8 @@ class ImageReaderUI(QObject): self.lighter_is_higher = (value == 1) @pyqtSlot(int) - def onConvertFunctionChanged(self, value): - self.use_logarithmic_function = (value == 0) + def onColorModelChanged(self, value): + self.use_transparency_model = (value == 0) @pyqtSlot(int) def onTransmittanceChanged(self, value): From 3e0b756a6d9654ed180f97d47a8b0412dc063a66 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:37:14 +0200 Subject: [PATCH 06/42] explain litho transmittance better --- plugins/ImageReader/ConfigUI.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 8a4ac67b3e..842ca612d9 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -168,7 +168,7 @@ UM.Dialog UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height - text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter.") + text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter. Lowering this value increases the contrast in dark regions and decreases the contrast in light regions of the image.") Row { width: parent.width From 236b7574c0bf5415535fde6ca559ebfa7bc8eeb7 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:55:10 +0200 Subject: [PATCH 07/42] fix litho thickness computation --- plugins/ImageReader/ImageReader.py | 4 ++-- plugins/ImageReader/ImageReaderUI.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 0086736f6d..2084844548 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -108,7 +108,7 @@ class ImageReader(MeshReader): Job.yieldThread() - if not lighter_is_higher: + if lighter_is_higher is use_transparency_model: height_data = 1 - height_data for _ in range(0, blur_iterations): @@ -133,7 +133,7 @@ class ImageReader(MeshReader): min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = peak_height - p * math.log(mapped_luminance, 2) + height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) else: height_data *= scale_vector.y height_data += base_height diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 41d8741b38..0fb9ea78de 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,7 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_transparency_model = True; - self.transmittance_1mm = 40.0; + self.transmittance_1mm = 20.0; # based on pearl PLA self._ui_lock = threading.Lock() self._cancelled = False From e59641eb67663c302f0139421c94fde29db64de1 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 20:19:29 +0200 Subject: [PATCH 08/42] based transmittance on measurements on print ratio of luminance of 1.4mm thickness to luminance at 0.4mm --- plugins/ImageReader/ImageReaderUI.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 0fb9ea78de..a61fabb742 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,7 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_transparency_model = True; - self.transmittance_1mm = 20.0; # based on pearl PLA + self.transmittance_1mm = 50.0; # based on pearl PLA self._ui_lock = threading.Lock() self._cancelled = False From b3d7887d4d6b60a061a2fb7097a57a0988d15b26 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 12:08:16 +0200 Subject: [PATCH 09/42] fix luminance computation --- plugins/ImageReader/ImageReader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index e720ce4854..c59151f1cb 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -99,8 +99,8 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - avg = float(qRed(qrgb) + qGreen(qrgb) + qBlue(qrgb)) / (3 * 255) - height_data[y, x] = avg + luminance = (0.2126 * qRed(qrgb) + 0.7152 * qGreen(qrgb) + 0.0722 * qBlue(qrgb)) / 255 # fast computation ignoring gamma + height_data[y, x] = luminance Job.yieldThread() From 88b424d36aa43d863a3e937187337af378905908 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 12:10:18 +0200 Subject: [PATCH 10/42] feat: use logarithmic conversion for lithophanes --- plugins/ImageReader/ConfigUI.qml | 22 ++++++++++++++++++++++ plugins/ImageReader/ImageReader.py | 16 ++++++++++++---- plugins/ImageReader/ImageReaderUI.py | 6 ++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 47ba10778c..ef28c174f2 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -143,6 +143,28 @@ UM.Dialog } } + UM.TooltipArea { + Layout.fillWidth:true + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","For lithophanes a logarithmic function is more appropriate for most materials. For height maps the pixel values correspond to heights linearly.") + Row { + width: parent.width + + Label { + text: "Conversion" + width: 150 * screenScaleFactor + anchors.verticalCenter: parent.verticalCenter + } + ComboBox { + id: conversion + objectName: "Conversion" + model: [ catalog.i18nc("@item:inlistbox","Logarithmic"), catalog.i18nc("@item:inlistbox","Linear") ] + width: 180 * screenScaleFactor + onCurrentIndexChanged: { manager.onConvertFunctionChanged(currentIndex) } + } + } + } + UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index c59151f1cb..bfaa6eb48c 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -3,6 +3,8 @@ import numpy +import math + from PyQt5.QtGui import QImage, qRed, qGreen, qBlue from PyQt5.QtCore import Qt @@ -46,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function): scene_node = SceneNode() mesh = MeshBuilder() @@ -124,8 +126,14 @@ class ImageReader(MeshReader): Job.yieldThread() - height_data *= scale_vector.y - height_data += base_height + if use_logarithmic_function: + min_luminance = 2.0 ** (peak_height - base_height) + for (y, x) in numpy.ndindex(height_data.shape): + mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] + height_data[y, x] = peak_height - math.log(mapped_luminance, 2) + else: + height_data *= scale_vector.y + height_data += base_height heightmap_face_count = 2 * height_minus_one * width_minus_one total_face_count = heightmap_face_count + (width_minus_one * 2) * (height_minus_one * 2) + 2 diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 213468a2ab..c769a8c264 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -34,6 +34,7 @@ class ImageReaderUI(QObject): self.peak_height = 2.5 self.smoothing = 1 self.lighter_is_higher = False; + self.use_logarithmic_function = False; self._ui_lock = threading.Lock() self._cancelled = False @@ -144,3 +145,8 @@ class ImageReaderUI(QObject): @pyqtSlot(int) def onImageColorInvertChanged(self, value): self.lighter_is_higher = (value == 1) + + @pyqtSlot(int) + def onConvertFunctionChanged(self, value): + self.use_logarithmic_function = (value == 0) + From b88183f4a1f218b7c87d9ccd64a2fa1d95a68f9e Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:18:07 +0200 Subject: [PATCH 11/42] fix translucency model using new permittance setting --- plugins/ImageReader/ConfigUI.qml | 23 +++++++++++++++++++++++ plugins/ImageReader/ImageReader.py | 9 +++++---- plugins/ImageReader/ImageReaderUI.py | 5 +++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index ef28c174f2..491594fa58 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -165,6 +165,29 @@ UM.Dialog } } + UM.TooltipArea { + Layout.fillWidth:true + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter.") + Row { + width: parent.width + + Label { + text: catalog.i18nc("@action:label", "1mm Transmittance (%)") + width: 150 * screenScaleFactor + anchors.verticalCenter: parent.verticalCenter + } + TextField { + id: transmittance + objectName: "Transmittance" + focus: true + validator: RegExpValidator {regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/} + width: 180 * screenScaleFactor + onTextChanged: { manager.onTransmittanceChanged(text) } + } + } + } + UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index bfaa6eb48c..ce3cab0b8f 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -48,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function, self._ui.transmittance_1mm) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function, transmittance_1mm): scene_node = SceneNode() mesh = MeshBuilder() @@ -127,10 +127,11 @@ class ImageReader(MeshReader): Job.yieldThread() if use_logarithmic_function: - min_luminance = 2.0 ** (peak_height - base_height) + p = 1.0 / math.log(transmittance_1mm / 100.0, 2) + min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = peak_height - math.log(mapped_luminance, 2) + height_data[y, x] = peak_height - p * math.log(mapped_luminance, 2) else: height_data *= scale_vector.y height_data += base_height diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index c769a8c264..67d6444538 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,6 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_logarithmic_function = False; + self.transmittance_1mm = 40.0; self._ui_lock = threading.Lock() self._cancelled = False @@ -76,6 +77,7 @@ class ImageReaderUI(QObject): self._ui_view.findChild(QObject, "Base_Height").setProperty("text", str(self.base_height)) self._ui_view.findChild(QObject, "Peak_Height").setProperty("text", str(self.peak_height)) + self._ui_view.findChild(QObject, "Transmittance").setProperty("text", str(self.transmittance_1mm)) self._ui_view.findChild(QObject, "Smoothing").setProperty("value", self.smoothing) def _createConfigUI(self): @@ -150,3 +152,6 @@ class ImageReaderUI(QObject): def onConvertFunctionChanged(self, value): self.use_logarithmic_function = (value == 0) + @pyqtSlot(int) + def onTransmittanceChanged(self, value): + self.transmittance_1mm = value From 2b55b85a1234791babf7700a362c940d4ca42473 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:21:05 +0200 Subject: [PATCH 12/42] fix luminance computation --- plugins/ImageReader/ImageReader.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index ce3cab0b8f..50825f2464 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -101,8 +101,10 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - luminance = (0.2126 * qRed(qrgb) + 0.7152 * qGreen(qrgb) + 0.0722 * qBlue(qrgb)) / 255 # fast computation ignoring gamma - height_data[y, x] = luminance + if use_logarithmic_function: + height_data[y, x] = (0.299 * math.pow(qRed(qrgb) / 255.0, 2.2) + 0.587 * math.pow(qGreen(qrgb) / 255.0, 2.2) + 0.114 * math.pow(qBlue(qrgb) / 255.0, 2.2)) + else: + height_data[y, x] = (0.212655 * qRed(qrgb) + 0.715158 * qGreen(qrgb) + 0.072187 * qBlue(qrgb)) / 255 # fast computation ignoring gamma and degamma Job.yieldThread() From a8b3d7e49ddcbc33df41dd6c4ec71b619511b966 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:27:51 +0200 Subject: [PATCH 13/42] make naming of Logarithmic Conversion Function intelligible --- plugins/ImageReader/ConfigUI.qml | 12 ++++++------ plugins/ImageReader/ImageReader.py | 8 ++++---- plugins/ImageReader/ImageReaderUI.py | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 491594fa58..8a4ac67b3e 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -146,21 +146,21 @@ UM.Dialog UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height - text: catalog.i18nc("@info:tooltip","For lithophanes a logarithmic function is more appropriate for most materials. For height maps the pixel values correspond to heights linearly.") + text: catalog.i18nc("@info:tooltip","For lithophanes a simple logarithmic model for translucency is available. For height maps the pixel values correspond to heights linearly.") Row { width: parent.width Label { - text: "Conversion" + text: "Color Model" width: 150 * screenScaleFactor anchors.verticalCenter: parent.verticalCenter } ComboBox { - id: conversion - objectName: "Conversion" - model: [ catalog.i18nc("@item:inlistbox","Logarithmic"), catalog.i18nc("@item:inlistbox","Linear") ] + id: color_model + objectName: "ColorModel" + model: [ catalog.i18nc("@item:inlistbox","Translucency"), catalog.i18nc("@item:inlistbox","Linear") ] width: 180 * screenScaleFactor - onCurrentIndexChanged: { manager.onConvertFunctionChanged(currentIndex) } + onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) } } } } diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 50825f2464..0086736f6d 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -48,9 +48,9 @@ class ImageReader(MeshReader): def _read(self, file_name): size = max(self._ui.getWidth(), self._ui.getDepth()) - return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_logarithmic_function, self._ui.transmittance_1mm) + return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.lighter_is_higher, self._ui.use_transparency_model, self._ui.transmittance_1mm) - def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_logarithmic_function, transmittance_1mm): + def _generateSceneNode(self, file_name, xz_size, peak_height, base_height, blur_iterations, max_size, lighter_is_higher, use_transparency_model, transmittance_1mm): scene_node = SceneNode() mesh = MeshBuilder() @@ -101,7 +101,7 @@ class ImageReader(MeshReader): for x in range(0, width): for y in range(0, height): qrgb = img.pixel(x, y) - if use_logarithmic_function: + if use_transparency_model: height_data[y, x] = (0.299 * math.pow(qRed(qrgb) / 255.0, 2.2) + 0.587 * math.pow(qGreen(qrgb) / 255.0, 2.2) + 0.114 * math.pow(qBlue(qrgb) / 255.0, 2.2)) else: height_data[y, x] = (0.212655 * qRed(qrgb) + 0.715158 * qGreen(qrgb) + 0.072187 * qBlue(qrgb)) / 255 # fast computation ignoring gamma and degamma @@ -128,7 +128,7 @@ class ImageReader(MeshReader): Job.yieldThread() - if use_logarithmic_function: + if use_transparency_model: p = 1.0 / math.log(transmittance_1mm / 100.0, 2) min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 67d6444538..41d8741b38 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -34,7 +34,7 @@ class ImageReaderUI(QObject): self.peak_height = 2.5 self.smoothing = 1 self.lighter_is_higher = False; - self.use_logarithmic_function = False; + self.use_transparency_model = True; self.transmittance_1mm = 40.0; self._ui_lock = threading.Lock() @@ -149,8 +149,8 @@ class ImageReaderUI(QObject): self.lighter_is_higher = (value == 1) @pyqtSlot(int) - def onConvertFunctionChanged(self, value): - self.use_logarithmic_function = (value == 0) + def onColorModelChanged(self, value): + self.use_transparency_model = (value == 0) @pyqtSlot(int) def onTransmittanceChanged(self, value): From 364483f6533905b710b5c2d8f2ff3d77b5d73598 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:37:14 +0200 Subject: [PATCH 14/42] explain litho transmittance better --- plugins/ImageReader/ConfigUI.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 8a4ac67b3e..842ca612d9 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -168,7 +168,7 @@ UM.Dialog UM.TooltipArea { Layout.fillWidth:true height: childrenRect.height - text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter.") + text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter. Lowering this value increases the contrast in dark regions and decreases the contrast in light regions of the image.") Row { width: parent.width From 5915947a7a54502b48367a9ba5e47e5888d5351b Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 14:55:10 +0200 Subject: [PATCH 15/42] fix litho thickness computation --- plugins/ImageReader/ImageReader.py | 4 ++-- plugins/ImageReader/ImageReaderUI.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 0086736f6d..2084844548 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -108,7 +108,7 @@ class ImageReader(MeshReader): Job.yieldThread() - if not lighter_is_higher: + if lighter_is_higher is use_transparency_model: height_data = 1 - height_data for _ in range(0, blur_iterations): @@ -133,7 +133,7 @@ class ImageReader(MeshReader): min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = peak_height - p * math.log(mapped_luminance, 2) + height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) else: height_data *= scale_vector.y height_data += base_height diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 41d8741b38..0fb9ea78de 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,7 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_transparency_model = True; - self.transmittance_1mm = 40.0; + self.transmittance_1mm = 20.0; # based on pearl PLA self._ui_lock = threading.Lock() self._cancelled = False From 449ad198225bb3df6c68a699b71e02660ad233ba Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Mon, 20 May 2019 20:19:29 +0200 Subject: [PATCH 16/42] based transmittance on measurements on print ratio of luminance of 1.4mm thickness to luminance at 0.4mm --- plugins/ImageReader/ImageReaderUI.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ImageReaderUI.py b/plugins/ImageReader/ImageReaderUI.py index 0fb9ea78de..a61fabb742 100644 --- a/plugins/ImageReader/ImageReaderUI.py +++ b/plugins/ImageReader/ImageReaderUI.py @@ -35,7 +35,7 @@ class ImageReaderUI(QObject): self.smoothing = 1 self.lighter_is_higher = False; self.use_transparency_model = True; - self.transmittance_1mm = 20.0; # based on pearl PLA + self.transmittance_1mm = 50.0; # based on pearl PLA self._ui_lock = threading.Lock() self._cancelled = False From 03f7fab1247cd50ea409a4129feb0b92174ca402 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 24 Oct 2019 17:26:20 +0200 Subject: [PATCH 17/42] lil fix --- plugins/ImageReader/ImageReader.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 2084844548..a77cc9b0ed 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -108,7 +108,7 @@ class ImageReader(MeshReader): Job.yieldThread() - if lighter_is_higher is use_transparency_model: + if lighter_is_higher == use_transparency_model: height_data = 1 - height_data for _ in range(0, blur_iterations): @@ -129,11 +129,11 @@ class ImageReader(MeshReader): Job.yieldThread() if use_transparency_model: - p = 1.0 / math.log(transmittance_1mm / 100.0, 2) + p = 1.0 / math.log(transmittance_1mm / 100.0, 2) # base doesn't matter here. use base 2 for fast computation min_luminance = 2.0 ** ((peak_height - base_height) / p) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) + height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) # use same base as a couple lines above this else: height_data *= scale_vector.y height_data += base_height From 6e65fe57727acf62cf8669557d7242b1ab9a1059 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 25 Oct 2019 09:57:39 +0200 Subject: [PATCH 18/42] Only show the transmittance input when the color model is Translucency CURA-6540 --- plugins/ImageReader/ConfigUI.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 842ca612d9..72ad79c05e 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -169,6 +169,7 @@ UM.Dialog Layout.fillWidth:true height: childrenRect.height text: catalog.i18nc("@info:tooltip","The percentage of light penetrating a print with a thickness of 1 millimeter. Lowering this value increases the contrast in dark regions and decreases the contrast in light regions of the image.") + visible: color_model.currentText == catalog.i18nc("@item:inlistbox","Translucency") Row { width: parent.width From 76a538322dba877cc520224932daf6fa93b12d03 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Fri, 25 Oct 2019 10:36:20 +0200 Subject: [PATCH 19/42] simplify formula to make it more numerically stable --- plugins/ImageReader/ImageReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index a77cc9b0ed..babd9f45cb 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -130,7 +130,7 @@ class ImageReader(MeshReader): if use_transparency_model: p = 1.0 / math.log(transmittance_1mm / 100.0, 2) # base doesn't matter here. use base 2 for fast computation - min_luminance = 2.0 ** ((peak_height - base_height) / p) + min_luminance = (transmittance_1mm / 100.0) ** (peak_height - base_height) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) # use same base as a couple lines above this From a01f91d4e366d1d1dbec2eb04ceb0e8f6398550d Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Fri, 25 Oct 2019 10:36:55 +0200 Subject: [PATCH 20/42] omit irrelevant log base --- plugins/ImageReader/ImageReader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index babd9f45cb..9bcd245615 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -129,11 +129,11 @@ class ImageReader(MeshReader): Job.yieldThread() if use_transparency_model: - p = 1.0 / math.log(transmittance_1mm / 100.0, 2) # base doesn't matter here. use base 2 for fast computation + p = 1.0 / math.log(transmittance_1mm / 100.0) # log-base doesn't matter here. Precompute this value for faster computation of each pixel. min_luminance = (transmittance_1mm / 100.0) ** (peak_height - base_height) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = base_height + p * math.log(mapped_luminance, 2) # use same base as a couple lines above this + height_data[y, x] = base_height + p * math.log(mapped_luminance) # use same base as a couple lines above this else: height_data *= scale_vector.y height_data += base_height From 1c134026706d270041a7e97d043cc6d93f505dfb Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Fri, 25 Oct 2019 10:38:23 +0200 Subject: [PATCH 21/42] rename single letter variable --- plugins/ImageReader/ImageReader.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ImageReader/ImageReader.py b/plugins/ImageReader/ImageReader.py index 9bcd245615..d6c2827d16 100644 --- a/plugins/ImageReader/ImageReader.py +++ b/plugins/ImageReader/ImageReader.py @@ -129,11 +129,11 @@ class ImageReader(MeshReader): Job.yieldThread() if use_transparency_model: - p = 1.0 / math.log(transmittance_1mm / 100.0) # log-base doesn't matter here. Precompute this value for faster computation of each pixel. + divisor = 1.0 / math.log(transmittance_1mm / 100.0) # log-base doesn't matter here. Precompute this value for faster computation of each pixel. min_luminance = (transmittance_1mm / 100.0) ** (peak_height - base_height) for (y, x) in numpy.ndindex(height_data.shape): mapped_luminance = min_luminance + (1.0 - min_luminance) * height_data[y, x] - height_data[y, x] = base_height + p * math.log(mapped_luminance) # use same base as a couple lines above this + height_data[y, x] = base_height + divisor * math.log(mapped_luminance) # use same base as a couple lines above this else: height_data *= scale_vector.y height_data += base_height From 9430d05cac522fb1953cb134cf603bcd4db6ad6c Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 25 Oct 2019 15:06:33 +0200 Subject: [PATCH 22/42] WIP: center path slider between view controls and action panel CURA-6874 --- plugins/PreviewStage/PreviewMain.qml | 31 +++++++++++++------ .../SimulationViewMainComponent.qml | 22 ++++++++++--- resources/qml/Cura.qml | 17 ++++++++++ 3 files changed, 57 insertions(+), 13 deletions(-) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml index 4ef10e5dbb..0b93dea0af 100644 --- a/plugins/PreviewStage/PreviewMain.qml +++ b/plugins/PreviewStage/PreviewMain.qml @@ -12,14 +12,26 @@ import Cura 1.0 as Cura Item { + // An Item whose bounds are guaranteed to be safe for overlays to be placed. + // Defaults to parent, ie. the entire available area + property var safeArea: parent + // Subtract the actionPanel from the safe area. This way the view won't draw interface elements under/over it - Item { - id: safeArea - visible: false - anchors.left: parent.left - anchors.right: actionPanelWidget.left - anchors.top: parent.top - anchors.bottom: actionPanelWidget.top + Rectangle + { + id: childSafeArea + x: safeArea.x - parent.x + y: safeArea.y - parent.y + width: actionPanelWidget.x - x + height: actionPanelWidget.y - y + visible: true // true for debug only + color:"#800000FF" + + Component.onCompleted: { + print("parent", parent.x, parent.y) + print("parent safe", safeArea.x, safeArea.y) + print("previewmain safe", childSafeArea.x, childSafeArea.y, childSafeArea.width, childSafeArea.height) + } } Loader @@ -29,9 +41,10 @@ Item source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : "" - onLoaded: { + onLoaded: + { if (previewMain.item.safeArea !== undefined){ - previewMain.item.safeArea = Qt.binding(function() { return safeArea }); + previewMain.item.safeArea = Qt.binding(function() { return childSafeArea }); } } } diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index cd7d108370..0cd2027dfa 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -18,7 +18,10 @@ Item property bool isSimulationPlaying: false + readonly property var layerSliderSafeYMin: safeArea.y readonly property var layerSliderSafeYMax: safeArea.y + safeArea.height + readonly property var pathSliderSafeXMin: safeArea.x + playButton.width //todo playbutton margin or group button + slider in an item? + readonly property var pathSliderSafeXMax: safeArea.x + safeArea.width visible: UM.SimulationView.layerActivity && CuraApplication.platformActivity @@ -26,13 +29,21 @@ Item PathSlider { id: pathSlider + + readonly property var preferredWidth: UM.Theme.getSize("slider_layerview_size").height // not a typo, should be as long as layerview slider + readonly property var margin: UM.Theme.getSize("default_margin").width + readonly property var pathSliderSafeWidth: pathSliderSafeXMax - pathSliderSafeXMin + height: UM.Theme.getSize("slider_handle").width - width: UM.Theme.getSize("slider_layerview_size").height + width: preferredWidth + margin * 2 < pathSliderSafeWidth ? preferredWidth : pathSliderSafeWidth - margin * 2 + anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("default_margin").height + anchors.bottomMargin: margin anchors.horizontalCenter: parent.horizontalCenter + anchors.horizontalCenterOffset: -(parent.width - pathSliderSafeXMax - pathSliderSafeXMin) / 2 // center between parent top and layerSliderSafeYMax + visible: !UM.SimulationView.compatibilityMode @@ -184,16 +195,19 @@ Item { property var preferredHeight: UM.Theme.getSize("slider_layerview_size").height property double heightMargin: UM.Theme.getSize("default_margin").height + property double layerSliderSafeHeight: layerSliderSafeYMax - layerSliderSafeYMin + //todo incorporate margins in safeHeight? + id: layerSlider width: UM.Theme.getSize("slider_handle").width - height: preferredHeight + heightMargin * 2 < layerSliderSafeYMax ? preferredHeight : layerSliderSafeYMax - heightMargin * 2 + height: preferredHeight + heightMargin * 2 < layerSliderSafeHeight ? preferredHeight : layerSliderSafeHeight - heightMargin * 2 anchors { right: parent.right verticalCenter: parent.verticalCenter - verticalCenterOffset: -(parent.height - layerSliderSafeYMax) / 2 // center between parent top and layerSliderSafeYMax + verticalCenterOffset: -(parent.height - layerSliderSafeYMax - layerSliderSafeYMin) / 2 // center between parent top and layerSliderSafeYMax rightMargin: UM.Theme.getSize("default_margin").width bottomMargin: heightMargin topMargin: heightMargin diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 828d8854dd..023072ddd3 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -301,6 +301,17 @@ UM.MainWindow } } + // A hint for the loaded content view. Overlay items / controls can safely be placed in this area + Rectangle { + id: mainSafeArea + anchors.left: viewOrientationControls.right + anchors.right: main.right + anchors.top: main.top + anchors.bottom: main.bottom + visible: true // set to true for debugging only + color:"#8000FF00" + } + Loader { // A stage can control this area. If nothing is set, it will therefore show the 3D view. @@ -316,6 +327,12 @@ UM.MainWindow } source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" + + onLoaded: { + if (main.item.safeArea !== undefined){ + main.item.safeArea = Qt.binding(function() { return mainSafeArea }); + } + } } Loader From d59a343b3f4020e2ff9742376378d143b4f59ad3 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Mon, 28 Oct 2019 09:59:30 +0100 Subject: [PATCH 23/42] Update simulation slider handle position after width change CURA-6874 --- plugins/SimulationView/PathSlider.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/SimulationView/PathSlider.qml b/plugins/SimulationView/PathSlider.qml index c7a43c6407..facdbb6a53 100644 --- a/plugins/SimulationView/PathSlider.qml +++ b/plugins/SimulationView/PathSlider.qml @@ -56,6 +56,11 @@ Item return Math.min(Math.max(value, sliderRoot.minimumValue), sliderRoot.maximumValue) } + onWidthChanged : { + // After a width change, the pixel-position of the handle is out of sync with the property value + setHandleValue(handleValue) + } + // slider track Rectangle { From 6bef16bbecd5044b19847d6d4f4b92deba2fe60a Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Mon, 28 Oct 2019 10:28:19 +0100 Subject: [PATCH 24/42] Cleanup: make safe areas invisible CURA-6874 --- plugins/PreviewStage/PreviewMain.qml | 2 +- resources/qml/Cura.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml index 0b93dea0af..719b5c0c0b 100644 --- a/plugins/PreviewStage/PreviewMain.qml +++ b/plugins/PreviewStage/PreviewMain.qml @@ -24,7 +24,7 @@ Item y: safeArea.y - parent.y width: actionPanelWidget.x - x height: actionPanelWidget.y - y - visible: true // true for debug only + visible: false // true for debug only color:"#800000FF" Component.onCompleted: { diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 023072ddd3..1f7ccf39a5 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -308,7 +308,7 @@ UM.MainWindow anchors.right: main.right anchors.top: main.top anchors.bottom: main.bottom - visible: true // set to true for debugging only + visible: false // set to true for debugging only color:"#8000FF00" } From 9e6207794b682df4e275410866971ec93734cc7d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 24 Oct 2019 13:19:06 +0200 Subject: [PATCH 25/42] Add CMake options to exclude plugins for installation CURA-6557 --- CMakeLists.txt | 6 +- cmake/CuraPluginInstall.cmake | 98 ++++++++++++++++++++++++++++++ cmake/mod_bundled_packages_json.py | 71 ++++++++++++++++++++++ 3 files changed, 172 insertions(+), 3 deletions(-) create mode 100644 cmake/CuraPluginInstall.cmake create mode 100755 cmake/mod_bundled_packages_json.py diff --git a/CMakeLists.txt b/CMakeLists.txt index b516de6b63..4954ac46dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ endif() if(NOT ${URANIUM_DIR} STREQUAL "") - set(CMAKE_MODULE_PATH "${URANIUM_DIR}/cmake") + set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${URANIUM_DIR}/cmake") endif() if(NOT ${URANIUM_SCRIPTS_DIR} STREQUAL "") list(APPEND CMAKE_MODULE_PATH ${URANIUM_DIR}/cmake) @@ -63,8 +63,8 @@ endif() install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura) -install(DIRECTORY plugins - DESTINATION lib${LIB_SUFFIX}/cura) + +include(CuraPluginInstall) if(NOT APPLE AND NOT WIN32) install(FILES cura_app.py diff --git a/cmake/CuraPluginInstall.cmake b/cmake/CuraPluginInstall.cmake new file mode 100644 index 0000000000..2eadb6c18f --- /dev/null +++ b/cmake/CuraPluginInstall.cmake @@ -0,0 +1,98 @@ +# Copyright (c) 2019 Ultimaker B.V. +# CuraPluginInstall.cmake is released under the terms of the LGPLv3 or higher. + +# +# This module detects all plugins that need to be installed and adds them using the CMake install() command. +# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it. +# +# Plugins can be configured to NOT BE INSTALLED via the variable "CURA_NO_INSTALL_PLUGINS" as a list of string in the +# form of "a;b;c" or "a,b,c". By default all plugins will be installed. +# + +# FIXME: Remove the code for CMake <3.12 once we have switched over completely. +# FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs. The FindPython3 +# module is copied from the CMake repository here so in CMake <3.12 we can still use it. +if(${CMAKE_VERSION} VERSION_LESS 3.12) + # Use FindPythonInterp and FindPythonLibs for CMake <3.12 + find_package(PythonInterp 3 REQUIRED) + + set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE}) +else() + # Use FindPython3 for CMake >=3.12 + find_package(Python3 REQUIRED COMPONENTS Interpreter) +endif() + +# Options or configuration variables +set(CURA_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.") + +file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json) +list(LENGTH _plugin_json_list _plugin_json_list_len) + +# Sort the lists alphabetically so we can handle cases like this: +# - plugins/my_plugin/plugin.json +# - plugins/my_plugin/my_module/plugin.json +# In this case, only "plugins/my_plugin" should be added via install(). +set(_no_install_plugin_list ${CURA_NO_INSTALL_PLUGINS}) +# Sanitize the string so the comparison will be case-insensitive. +string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list) +string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list) + +# WORKAROUND counterpart of what's in cura-build. +string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}") + +list(LENGTH _no_install_plugin_list _no_install_plugin_list_len) + +if(_no_install_plugin_list_len GREATER 0) + list(SORT _no_install_plugin_list) +endif() +if(_plugin_json_list_len GREATER 0) + list(SORT _plugin_json_list) +endif() + +# Check all plugin directories and add them via install() if needed. +set(_install_plugin_list "") +foreach(_plugin_json_path ${_plugin_json_list}) + get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY) + file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir}) + get_filename_component(_plugin_dir_name ${_plugin_dir} NAME) + + # Make plugin name comparison case-insensitive + string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase) + + # Check if this plugin needs to be skipped for installation + set(_add_plugin ON) + set(_is_no_install_plugin OFF) + if(_no_install_plugin_list) + if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list) + set(_add_plugin OFF) + set(_is_no_install_plugin ON) + endif() + endif() + + # Make sure this is not a subdirectory in a plugin that's already in the install list + if(_add_plugin) + foreach(_known_install_plugin_dir ${_install_plugin_list}) + if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+") + set(_add_plugin OFF) + break() + endif() + endforeach() + endif() + + if(_add_plugin) + message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}") + get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY) + install(DIRECTORY ${_rel_plugin_dir} + DESTINATION lib${LIB_SUFFIX}/cura/${_rel_plugin_parent_dir} + PATTERN "__pycache__" EXCLUDE + PATTERN "*.qmlc" EXCLUDE + ) + list(APPEND _install_plugin_list ${_plugin_dir}) + elseif(_is_no_install_plugin) + message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}") + execute_process(COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py + -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages + ${_plugin_dir_name} + RESULT_VARIABLE _mod_json_result) + endif() +endforeach() diff --git a/cmake/mod_bundled_packages_json.py b/cmake/mod_bundled_packages_json.py new file mode 100755 index 0000000000..8a33f88a5a --- /dev/null +++ b/cmake/mod_bundled_packages_json.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +# +# This script removes the given package entries in the bundled_packages JSON files. This is used by the PluginInstall +# CMake module. +# + +import argparse +import collections +import json +import os +import sys + + +def find_json_files(work_dir: str) -> list: + """ + Finds all JSON files in the given directory recursively and returns a list of those files in absolute paths. + :param work_dir: The directory to look for JSON files recursively. + :return: A list of JSON files in absolute paths that are found in the given directory. + """ + json_file_list = [] + for root, dir_names, file_names in os.walk(work_dir): + for file_name in file_names: + abs_path = os.path.abspath(os.path.join(root, file_name)) + json_file_list.append(abs_path) + return json_file_list + + +def remove_entries_from_json_file(file_path: str, entries: list) -> None: + """ + Removes the given entries from the given JSON file. The file will modified in-place. + :param file_path: The JSON file to modify. + :param entries: A list of strings as entries to remove. + :return: None + """ + try: + with open(file_path, "r", encoding = "utf-8") as f: + package_dict = json.load(f, object_hook = collections.OrderedDict) + except Exception as e: + msg = "Failed to load '{file_path}' as a JSON file. This file will be ignored Exception: {e}"\ + .format(file_path = file_path, e = e) + sys.stderr.write(msg + os.linesep) + return + + for entry in entries: + if entry in package_dict: + del package_dict[entry] + print("[INFO] Remove entry [{entry}] from [{file_path}]".format(file_path = file_path, entry = entry)) + + try: + with open(file_path, "w", encoding = "utf-8", newline = "\n") as f: + json.dump(package_dict, f, indent = 4) + except Exception as e: + msg = "Failed to write '{file_path}' as a JSON file. Exception: {e}".format(file_path = file_path, e = e) + raise IOError(msg) + + +def main() -> None: + parser = argparse.ArgumentParser("mod_bundled_packages_json") + parser.add_argument("-d", "--dir", dest = "work_dir", + help = "The directory to look for bundled packages JSON files, recursively.") + parser.add_argument("entries", metavar = "ENTRIES", type = str, nargs = "+") + + args = parser.parse_args() + + json_file_list = find_json_files(args.work_dir) + for json_file_path in json_file_list: + remove_entries_from_json_file(json_file_path, args.entries) + + +if __name__ == "__main__": + main() From 3f1a3d76eab136f818bfef8513cd42ad8f477265 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 28 Oct 2019 14:37:07 +0100 Subject: [PATCH 26/42] Add more docs CURA-6557 --- cmake/CuraPluginInstall.cmake | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmake/CuraPluginInstall.cmake b/cmake/CuraPluginInstall.cmake index 2eadb6c18f..d35e74acb8 100644 --- a/cmake/CuraPluginInstall.cmake +++ b/cmake/CuraPluginInstall.cmake @@ -60,8 +60,9 @@ foreach(_plugin_json_path ${_plugin_json_list}) string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase) # Check if this plugin needs to be skipped for installation - set(_add_plugin ON) - set(_is_no_install_plugin OFF) + set(_add_plugin ON) # Indicates if this plugin should be added to the build or not. + set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is + # specified in the NO_INSTALL_PLUGINS list. if(_no_install_plugin_list) if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list) set(_add_plugin OFF) From 007add7fc2dbf70e7a0070d731bbe43a481f52a3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 29 Oct 2019 10:55:47 +0100 Subject: [PATCH 27/42] Prevent undefined qml warnings CURA-6935 --- resources/qml/Settings/SettingExtruder.qml | 2 +- resources/qml/Settings/SettingItem.qml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 7162744ae5..ff57381ddf 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -75,7 +75,7 @@ SettingItem base.setActiveFocusToNextSetting(false) } - currentIndex: propertyProvider.properties.value + currentIndex: propertyProvider.properties.value !== undefined ? propertyProvider.properties.value : 0 property string color: "#fff" diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index e1b3f5a098..9986c7eaf8 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -277,6 +277,10 @@ Item // Observed when loading workspace, probably when SettingItems are removed. return false } + if(globalPropertyProvider.properties.limit_to_extruder === undefined) + { + return false + } return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0 } From 18167c7a7129b0b32be00c828882d700e4e2d320 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 29 Oct 2019 11:02:54 +0100 Subject: [PATCH 28/42] Fix prime position of right extruder --- resources/extruders/ultimaker_s3_extruder_right.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/extruders/ultimaker_s3_extruder_right.def.json b/resources/extruders/ultimaker_s3_extruder_right.def.json index 6771e1c0a8..7199710327 100644 --- a/resources/extruders/ultimaker_s3_extruder_right.def.json +++ b/resources/extruders/ultimaker_s3_extruder_right.def.json @@ -22,7 +22,7 @@ "machine_extruder_end_pos_x": { "default_value": 180 }, "machine_extruder_end_pos_y": { "default_value": 180 }, "machine_nozzle_head_distance": { "default_value": 4.2 }, - "extruder_prime_pos_x": { "default_value": 180 }, + "extruder_prime_pos_x": { "value": "machine_width + 3" }, "extruder_prime_pos_y": { "default_value": 6 }, "extruder_prime_pos_z": { "default_value": 2 } } From 7b9ababc11394091f727656725fae3de75a9978d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 29 Oct 2019 11:14:49 +0100 Subject: [PATCH 29/42] Use Doxygen-style docs CURA-6557 --- cmake/mod_bundled_packages_json.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/cmake/mod_bundled_packages_json.py b/cmake/mod_bundled_packages_json.py index 8a33f88a5a..6423591f57 100755 --- a/cmake/mod_bundled_packages_json.py +++ b/cmake/mod_bundled_packages_json.py @@ -11,12 +11,11 @@ import os import sys +## Finds all JSON files in the given directory recursively and returns a list of those files in absolute paths. +# +# \param work_dir The directory to look for JSON files recursively. +# \return A list of JSON files in absolute paths that are found in the given directory. def find_json_files(work_dir: str) -> list: - """ - Finds all JSON files in the given directory recursively and returns a list of those files in absolute paths. - :param work_dir: The directory to look for JSON files recursively. - :return: A list of JSON files in absolute paths that are found in the given directory. - """ json_file_list = [] for root, dir_names, file_names in os.walk(work_dir): for file_name in file_names: @@ -25,13 +24,12 @@ def find_json_files(work_dir: str) -> list: return json_file_list +## Removes the given entries from the given JSON file. The file will modified in-place. +# +# \param file_path The JSON file to modify. +# \param entries A list of strings as entries to remove. +# \return None def remove_entries_from_json_file(file_path: str, entries: list) -> None: - """ - Removes the given entries from the given JSON file. The file will modified in-place. - :param file_path: The JSON file to modify. - :param entries: A list of strings as entries to remove. - :return: None - """ try: with open(file_path, "r", encoding = "utf-8") as f: package_dict = json.load(f, object_hook = collections.OrderedDict) From 7cd4158ac197dff4b259e6528fc1c9e7b87b873d Mon Sep 17 00:00:00 2001 From: THeijmans Date: Wed, 30 Oct 2019 09:09:17 +0100 Subject: [PATCH 30/42] Adds Ultimaker S3 intent profiles As discussed 29-10-2019. --- ...um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg | 34 +++++++++++++++++++ ..._s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg | 34 +++++++++++++++++++ ...aa0.4_ABS_Normal_Quality_Accurate.inst.cfg | 34 +++++++++++++++++++ ...um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg | 34 +++++++++++++++++++ ..._s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg | 34 +++++++++++++++++++ ...aa0.4_PLA_Normal_Quality_Accurate.inst.cfg | 34 +++++++++++++++++++ ...m_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg | 34 +++++++++++++++++++ ...s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg | 34 +++++++++++++++++++ ...a0.4_TPLA_Normal_Quality_Accurate.inst.cfg | 34 +++++++++++++++++++ 9 files changed, 306 insertions(+) create mode 100644 resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg create mode 100644 resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg b/resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg new file mode 100644 index 0000000000..b41f636e63 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Quick +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = smooth +quality_type = draft +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +speed_layer_0 = 20 +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 2 +fill_perimeter_gaps = nowhere +infill_sparse_density = 15 +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +wall_line_width_x = =line_width diff --git a/resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg new file mode 100644 index 0000000000..b3d58c0df9 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = fast +material = generic_abs +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 diff --git a/resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg new file mode 100644 index 0000000000..c85b3fce0e --- /dev/null +++ b/resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = normal +material = generic_abs +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 diff --git a/resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg b/resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg new file mode 100644 index 0000000000..8095a53141 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Quick +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = smooth +quality_type = draft +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +speed_layer_0 = 20 +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 2 +fill_perimeter_gaps = nowhere +infill_sparse_density = 15 +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +wall_line_width_x = =line_width diff --git a/resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg new file mode 100644 index 0000000000..1f38e12c42 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = fast +material = generic_pla +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 diff --git a/resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg new file mode 100644 index 0000000000..e529ff7656 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = normal +material = generic_pla +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 diff --git a/resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg b/resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg new file mode 100644 index 0000000000..edae808491 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Quick +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = smooth +quality_type = draft +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = =speed_print +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +speed_layer_0 = 20 +top_bottom_thickness = =wall_thickness +wall_thickness = =line_width * 2 +fill_perimeter_gaps = nowhere +infill_sparse_density = 15 +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +wall_line_width_x = =line_width diff --git a/resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg new file mode 100644 index 0000000000..8c6727bdb0 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = fast +material = generic_tough_pla +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 diff --git a/resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg new file mode 100644 index 0000000000..dd64f3f185 --- /dev/null +++ b/resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg @@ -0,0 +1,34 @@ +[general] +version = 4 +name = Accurate +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = engineering +quality_type = normal +material = generic_tough_pla +variant = AA 0.4 + +[values] +infill_line_width = =line_width +jerk_print = 30 +jerk_infill = =jerk_print +jerk_topbottom = =jerk_print +jerk_wall = =jerk_print +jerk_wall_0 = =jerk_wall +jerk_wall_x = =jerk_wall +jerk_layer_0 = 5 +line_width = =machine_nozzle_size +speed_print = 30 +speed_infill = =speed_print +speed_layer_0 = 20 +speed_topbottom = =speed_print +speed_wall = =speed_print +speed_wall_0 = =speed_wall +speed_wall_x = =speed_wall +top_bottom_thickness = =wall_thickness +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 +xy_offset = =- layer_height * 0.2 From 958a92280845ba9833ca3dae5b86cecd8b0aaf24 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Wed, 30 Oct 2019 10:54:22 +0100 Subject: [PATCH 31/42] Cleanup debugging things for cura-6874 CURA-6874 --- plugins/PreviewStage/PreviewMain.qml | 11 ++--------- .../SimulationView/SimulationViewMainComponent.qml | 14 +++++++------- resources/qml/Cura.qml | 5 ++--- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml index 719b5c0c0b..9eac1b9d40 100644 --- a/plugins/PreviewStage/PreviewMain.qml +++ b/plugins/PreviewStage/PreviewMain.qml @@ -17,21 +17,14 @@ Item property var safeArea: parent // Subtract the actionPanel from the safe area. This way the view won't draw interface elements under/over it - Rectangle + Item { id: childSafeArea x: safeArea.x - parent.x y: safeArea.y - parent.y width: actionPanelWidget.x - x height: actionPanelWidget.y - y - visible: false // true for debug only - color:"#800000FF" - - Component.onCompleted: { - print("parent", parent.x, parent.y) - print("parent safe", safeArea.x, safeArea.y) - print("previewmain safe", childSafeArea.x, childSafeArea.y, childSafeArea.width, childSafeArea.height) - } + visible: false } Loader diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 0cd2027dfa..3b70c69e82 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -18,10 +18,10 @@ Item property bool isSimulationPlaying: false - readonly property var layerSliderSafeYMin: safeArea.y - readonly property var layerSliderSafeYMax: safeArea.y + safeArea.height - readonly property var pathSliderSafeXMin: safeArea.x + playButton.width //todo playbutton margin or group button + slider in an item? - readonly property var pathSliderSafeXMax: safeArea.x + safeArea.width + readonly property real layerSliderSafeYMin: safeArea.y + readonly property real layerSliderSafeYMax: safeArea.y + safeArea.height + readonly property real pathSliderSafeXMin: safeArea.x + playButton.width + readonly property real pathSliderSafeXMax: safeArea.x + safeArea.width visible: UM.SimulationView.layerActivity && CuraApplication.platformActivity @@ -30,9 +30,9 @@ Item { id: pathSlider - readonly property var preferredWidth: UM.Theme.getSize("slider_layerview_size").height // not a typo, should be as long as layerview slider - readonly property var margin: UM.Theme.getSize("default_margin").width - readonly property var pathSliderSafeWidth: pathSliderSafeXMax - pathSliderSafeXMin + readonly property real preferredWidth: UM.Theme.getSize("slider_layerview_size").height // not a typo, should be as long as layerview slider + readonly property real margin: UM.Theme.getSize("default_margin").width + readonly property real pathSliderSafeWidth: pathSliderSafeXMax - pathSliderSafeXMin height: UM.Theme.getSize("slider_handle").width width: preferredWidth + margin * 2 < pathSliderSafeWidth ? preferredWidth : pathSliderSafeWidth - margin * 2 diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 1f7ccf39a5..abae84e7f0 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -302,14 +302,13 @@ UM.MainWindow } // A hint for the loaded content view. Overlay items / controls can safely be placed in this area - Rectangle { + Item { id: mainSafeArea anchors.left: viewOrientationControls.right anchors.right: main.right anchors.top: main.top anchors.bottom: main.bottom - visible: false // set to true for debugging only - color:"#8000FF00" + visible: false } Loader From d63499fb245b62385de54532f90545791eeb7f46 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Wed, 30 Oct 2019 10:57:03 +0100 Subject: [PATCH 32/42] Remove redundant visibility properties from Items CURA-6874 --- plugins/PreviewStage/PreviewMain.qml | 1 - resources/qml/Cura.qml | 1 - 2 files changed, 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml index 9eac1b9d40..2926f0d012 100644 --- a/plugins/PreviewStage/PreviewMain.qml +++ b/plugins/PreviewStage/PreviewMain.qml @@ -24,7 +24,6 @@ Item y: safeArea.y - parent.y width: actionPanelWidget.x - x height: actionPanelWidget.y - y - visible: false } Loader diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index abae84e7f0..f13f9e0ce9 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -308,7 +308,6 @@ UM.MainWindow anchors.right: main.right anchors.top: main.top anchors.bottom: main.bottom - visible: false } Loader From 1284d9fe8d726e46b556caa8f2f390dc7d65220c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 30 Oct 2019 11:27:46 +0100 Subject: [PATCH 33/42] Fix setting prefered material on machine creation The previous check would occasionaly set duplicated materials --- cura/Machines/VariantNode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/VariantNode.py b/cura/Machines/VariantNode.py index 334a01158b..b93be9773e 100644 --- a/cura/Machines/VariantNode.py +++ b/cura/Machines/VariantNode.py @@ -83,7 +83,7 @@ class VariantNode(ContainerNode): # if there is no match. def preferredMaterial(self, approximate_diameter: int) -> MaterialNode: for base_material, material_node in self.materials.items(): - if self.machine.preferred_material in base_material and approximate_diameter == int(material_node.getMetaDataEntry("approximate_diameter")): + if self.machine.preferred_material == base_material and approximate_diameter == int(material_node.getMetaDataEntry("approximate_diameter")): return material_node # First fallback: Choose any material with matching diameter. for material_node in self.materials.values(): From d3809f883016c1e1023c6ce8899d47ed2b842748 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 30 Oct 2019 13:40:13 +0100 Subject: [PATCH 34/42] Replace logo in the top left corner This aligns it with the other Ultimaker products. Sorry, overruled by higher up. Corporate things. Contributes to issue CURA-6934. --- resources/themes/cura-light/images/logo.svg | 53 +++++++-------------- 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/resources/themes/cura-light/images/logo.svg b/resources/themes/cura-light/images/logo.svg index 814b157e2a..24d8da8c46 100644 --- a/resources/themes/cura-light/images/logo.svg +++ b/resources/themes/cura-light/images/logo.svg @@ -1,37 +1,18 @@ - - - - - - - + + + + + + + + + + + + + + + + + From d8e1402b68c64698b4a1328cebf13dda9f760df7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 30 Oct 2019 13:50:42 +0100 Subject: [PATCH 35/42] Make logo larger Seems to be more towards what the rest of the products show. Contributes to issue CURA-6934. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 0d9f624805..055f176b33 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -483,7 +483,7 @@ "default_lining": [0.08, 0.08], "default_arrow": [0.8, 0.8], - "logo": [8, 1.75], + "logo": [16, 3.5], "wide_margin": [2.0, 2.0], "thick_margin": [1.71, 1.43], From 60d59148e802316b1730906e78444a45762495cc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 30 Oct 2019 14:05:35 +0100 Subject: [PATCH 36/42] Fix typo in the R Contributes to issue CURA-6934. --- resources/themes/cura-light/images/logo.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/images/logo.svg b/resources/themes/cura-light/images/logo.svg index 24d8da8c46..611840e248 100644 --- a/resources/themes/cura-light/images/logo.svg +++ b/resources/themes/cura-light/images/logo.svg @@ -12,7 +12,7 @@ - + From ce31e9cffeb4ab442ac51104fa3a6e6969d0f8d4 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Thu, 31 Oct 2019 11:15:10 +0100 Subject: [PATCH 37/42] Adds visual intents and create subdirectories per printer. As discussed 31-10-2019. --- .../um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg | 0 .../um_s3_aa0.4_ABS_Draft_Visual.inst.cfg | 17 +++++++++++++++++ ...um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg | 0 .../um_s3_aa0.4_ABS_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s3_aa0.4_ABS_High_Visual.inst.cfg | 17 +++++++++++++++++ ...3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg | 0 .../um_s3_aa0.4_ABS_Normal_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg | 0 .../um_s3_aa0.4_PLA_Draft_Visual.inst.cfg | 17 +++++++++++++++++ ...um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg | 0 .../um_s3_aa0.4_PLA_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s3_aa0.4_PLA_High_Visual.inst.cfg | 17 +++++++++++++++++ ...3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg | 0 .../um_s3_aa0.4_PLA_Normal_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg | 0 .../um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg | 17 +++++++++++++++++ ...m_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg | 0 .../um_s3_aa0.4_TPLA_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s3_aa0.4_TPLA_High_Visual.inst.cfg | 17 +++++++++++++++++ ..._aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg | 0 .../um_s3_aa0.4_TPLA_Normal_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg | 0 .../um_s5_aa0.4_ABS_Draft_Visual.inst.cfg | 16 ++++++++++++++++ ...um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg | 0 .../um_s5_aa0.4_ABS_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_ABS_High_Visual.inst.cfg | 17 +++++++++++++++++ ...5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg | 0 .../um_s5_aa0.4_ABS_Normal_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg | 0 .../um_s5_aa0.4_PLA_Draft_Visual.inst.cfg | 17 +++++++++++++++++ ...um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg | 0 .../um_s5_aa0.4_PLA_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_PLA_High_Visual.inst.cfg | 17 +++++++++++++++++ ...5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg | 0 .../um_s5_aa0.4_PLA_Normal_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg | 0 .../um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg | 16 ++++++++++++++++ ...m_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg | 0 .../um_s5_aa0.4_TPLA_Fast_Visual.inst.cfg | 17 +++++++++++++++++ .../um_s5_aa0.4_TPLA_High_Visual.inst.cfg | 17 +++++++++++++++++ ..._aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg | 0 .../um_s5_aa0.4_TPLA_Normal_Visual.inst.cfg | 17 +++++++++++++++++ 42 files changed, 406 insertions(+) rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s3}/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Visual.inst.cfg create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_High_Visual.inst.cfg rename resources/intent/{ => ultimaker_s5}/um_s5_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg (100%) create mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Visual.inst.cfg diff --git a/resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..49672fcb72 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +intent_category = visual +quality_type = draft +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..35d0d86ab3 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_High_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_High_Visual.inst.cfg new file mode 100644 index 0000000000..2b656dbc35 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..aff1d9d9f0 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..0c39d43c6a --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = draft +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..92ea0837fe --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_High_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_High_Visual.inst.cfg new file mode 100644 index 0000000000..97c7ab325c --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..e012264294 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..f52eb22ec2 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = draft +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..9debbb6d43 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_High_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_High_Visual.inst.cfg new file mode 100644 index 0000000000..a57b040660 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..0f31bcce25 --- /dev/null +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s3 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..4f7ee148f9 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg @@ -0,0 +1,16 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +intent_category = visualquality_type = draft +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..0f10b8416b --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_High_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_High_Visual.inst.cfg new file mode 100644 index 0000000000..b6ea956563 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..f26003ca30 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_abs +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..a71bb898d3 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = draft +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..b20fdcb791 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_High_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_High_Visual.inst.cfg new file mode 100644 index 0000000000..3fc0006b3f --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..4138f62694 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg new file mode 100644 index 0000000000..b522d262af --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg @@ -0,0 +1,16 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Visual.inst.cfg new file mode 100644 index 0000000000..3f5d3c566e --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = fast +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_High_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_High_Visual.inst.cfg new file mode 100644 index 0000000000..3b5d9fb3db --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_High_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = high +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness diff --git a/resources/intent/um_s5_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg similarity index 100% rename from resources/intent/um_s5_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg rename to resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality_Accurate.inst.cfg diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Visual.inst.cfg new file mode 100644 index 0000000000..d71bb76b35 --- /dev/null +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Visual.inst.cfg @@ -0,0 +1,17 @@ +[general] +version = 4 +name = Visual +definition = ultimaker_s5 + +[metadata] +setting_version = 10 +type = intent +quality_type = normal +intent_category = visual +material = generic_tough_pla +variant = AA 0.4 + +[values] +speed_infill = 50 +wall_thickness = =wall_line_width * 3 +top_bottom_thickness = =wall_thickness From f679b557dc391cc362a123c4ddfae69c492c4be9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 31 Oct 2019 11:51:40 +0100 Subject: [PATCH 38/42] Add visual quality to model to be translatable CURA-6942 --- cura/Machines/Models/IntentCategoryModel.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cura/Machines/Models/IntentCategoryModel.py b/cura/Machines/Models/IntentCategoryModel.py index 0ff52b325a..20d07864bf 100644 --- a/cura/Machines/Models/IntentCategoryModel.py +++ b/cura/Machines/Models/IntentCategoryModel.py @@ -35,16 +35,20 @@ class IntentCategoryModel(ListModel): _translations["default"] = { "name": catalog.i18nc("@label", "Default") } + _translations["visual"] = { + "name": catalog.i18nc("@label", "Visual"), + "description": catalog.i18nc("@text", "Optimized for appearance") + } _translations["engineering"] = { "name": catalog.i18nc("@label", "Engineering"), "description": catalog.i18nc("@text", "Suitable for engineering work") - } _translations["smooth"] = { "name": catalog.i18nc("@label", "Smooth"), "description": catalog.i18nc("@text", "Optimized for a smooth surfaces") } + ## Creates a new model for a certain intent category. # \param The category to list the intent profiles for. def __init__(self, intent_category: str) -> None: From 355ebd4e71f332cb97a1b3965b47636488a92cb7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 31 Oct 2019 13:20:35 +0100 Subject: [PATCH 39/42] Remove override for prime tower position The formula in the fdmprinter definition does it's job, so no need to change it! CURA-6943 --- resources/definitions/ultimaker_s3.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/ultimaker_s3.def.json b/resources/definitions/ultimaker_s3.def.json index 7348c14a2a..efdc7cca0a 100644 --- a/resources/definitions/ultimaker_s3.def.json +++ b/resources/definitions/ultimaker_s3.def.json @@ -67,8 +67,6 @@ "extruder_prime_pos_abs": { "default_value": true }, "machine_start_gcode": { "default_value": "" }, "machine_end_gcode": { "default_value": "" }, - "prime_tower_position_x": { "value": "345" }, - "prime_tower_position_y": { "value": "222.5" }, "prime_blob_enable": { "enabled": true, "default_value": false }, "speed_travel": From 1af1a8ddcb13ab2a472ace4dc7b1f4ab59d7802f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 31 Oct 2019 13:26:49 +0100 Subject: [PATCH 40/42] Rename "smooth" intent to draft CURA-6890 --- cura/Machines/Models/IntentCategoryModel.py | 8 ++++---- .../um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg | 2 +- .../um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg | 2 +- .../um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg | 2 +- .../um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg | 2 +- .../um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg | 2 +- .../um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cura/Machines/Models/IntentCategoryModel.py b/cura/Machines/Models/IntentCategoryModel.py index 20d07864bf..a968d12b7a 100644 --- a/cura/Machines/Models/IntentCategoryModel.py +++ b/cura/Machines/Models/IntentCategoryModel.py @@ -41,11 +41,11 @@ class IntentCategoryModel(ListModel): } _translations["engineering"] = { "name": catalog.i18nc("@label", "Engineering"), - "description": catalog.i18nc("@text", "Suitable for engineering work") + "description": catalog.i18nc("@text", "Optimized for higher accuracy") } - _translations["smooth"] = { - "name": catalog.i18nc("@label", "Smooth"), - "description": catalog.i18nc("@text", "Optimized for a smooth surfaces") + _translations["quick"] = { + "name": catalog.i18nc("@label", "Draft"), + "description": catalog.i18nc("@text", "Optimized for fast results") } diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg index b41f636e63..92d91840b5 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s3 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_abs variant = AA 0.4 diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg index 8095a53141..1d990b83c0 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s3 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_pla variant = AA 0.4 diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg index edae808491..020a4bbc99 100644 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s3 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_tough_pla variant = AA 0.4 diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg index f627fbf74b..14bb0e0f54 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s5 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_abs variant = AA 0.4 diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg index 553a68201d..86062ecf19 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s5 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_pla variant = AA 0.4 diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg index 458b283dd8..3a6e19c64c 100644 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print_Quick.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker_s5 [metadata] setting_version = 10 type = intent -intent_category = smooth +intent_category = quick quality_type = draft material = generic_tough_pla variant = AA 0.4 From 05b1ce965889b330fc713a44e4de33995565ec94 Mon Sep 17 00:00:00 2001 From: THeijmans Date: Thu, 31 Oct 2019 17:06:05 +0100 Subject: [PATCH 41/42] Removes 0.2mm layer height visual intent profiles --- .../um_s3_aa0.4_ABS_Draft_Visual.inst.cfg | 17 ----------------- .../um_s3_aa0.4_PLA_Draft_Visual.inst.cfg | 17 ----------------- .../um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg | 17 ----------------- .../um_s5_aa0.4_ABS_Draft_Visual.inst.cfg | 16 ---------------- .../um_s5_aa0.4_PLA_Draft_Visual.inst.cfg | 17 ----------------- .../um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg | 16 ---------------- 6 files changed, 100 deletions(-) delete mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg delete mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg delete mode 100644 resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg delete mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg delete mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg delete mode 100644 resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg deleted file mode 100644 index 49672fcb72..0000000000 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_ABS_Draft_Visual.inst.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s3 - -[metadata] -setting_version = 10 -type = intent -intent_category = visual -quality_type = draft -material = generic_abs -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg deleted file mode 100644 index 0c39d43c6a..0000000000 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_PLA_Draft_Visual.inst.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s3 - -[metadata] -setting_version = 10 -type = intent -quality_type = draft -intent_category = visual -material = generic_pla -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg deleted file mode 100644 index f52eb22ec2..0000000000 --- a/resources/intent/ultimaker_s3/um_s3_aa0.4_TPLA_Draft_Visual.inst.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s3 - -[metadata] -setting_version = 10 -type = intent -quality_type = draft -intent_category = visual -material = generic_tough_pla -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg deleted file mode 100644 index 4f7ee148f9..0000000000 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Visual.inst.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s5 - -[metadata] -setting_version = 10 -type = intent -intent_category = visualquality_type = draft -material = generic_abs -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg deleted file mode 100644 index a71bb898d3..0000000000 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Visual.inst.cfg +++ /dev/null @@ -1,17 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s5 - -[metadata] -setting_version = 10 -type = intent -quality_type = draft -intent_category = visual -material = generic_pla -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness diff --git a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg b/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg deleted file mode 100644 index b522d262af..0000000000 --- a/resources/intent/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Visual.inst.cfg +++ /dev/null @@ -1,16 +0,0 @@ -[general] -version = 4 -name = Visual -definition = ultimaker_s5 - -[metadata] -setting_version = 10 -type = intent -intent_category = visual -material = generic_tough_pla -variant = AA 0.4 - -[values] -speed_infill = 50 -wall_thickness = =wall_line_width * 3 -top_bottom_thickness = =wall_thickness From 90f580494b2445abd013bf73ddd1a5762b2e5517 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 1 Nov 2019 10:31:07 +0100 Subject: [PATCH 42/42] Change default image reader algorithm from logarithmic to linear The log curve might have some benefits but is also harder to understand and configure, so let's keep the default at linear. CURA-6540 --- plugins/ImageReader/ConfigUI.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 72ad79c05e..0429fae4e1 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -158,7 +158,7 @@ UM.Dialog ComboBox { id: color_model objectName: "ColorModel" - model: [ catalog.i18nc("@item:inlistbox","Translucency"), catalog.i18nc("@item:inlistbox","Linear") ] + model: [ catalog.i18nc("@item:inlistbox","Linear"), catalog.i18nc("@item:inlistbox","Translucency") ] width: 180 * screenScaleFactor onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) } }