Merge branch 'CURA-10475_engineplugin' into CURA-10446_modify_gcode_path

This commit is contained in:
c.lamboo 2023-08-28 10:43:37 +02:00
commit ffe6447244
26 changed files with 192 additions and 104 deletions

View File

@ -144,7 +144,9 @@ jobs:
run: echo -n "$GPG_PRIVATE_KEY" | base64 --decode | gpg --import
- name: Get Conan configuration
run: conan config install https://github.com/Ultimaker/conan-config.git
run: |
conan config install https://github.com/Ultimaker/conan-config.git
conan config install https://github.com/Ultimaker/conan-config.git -a "-b runner/${{ runner.os }}/${{ runner.arch }}"
- name: Use Conan download cache (Bash)
run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache"

View File

@ -144,15 +144,13 @@ jobs:
p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }}
- name: Get Conan configuration
run: conan config install https://github.com/Ultimaker/conan-config.git
run: |
conan config install https://github.com/Ultimaker/conan-config.git
conan config install https://github.com/Ultimaker/conan-config.git -a "-b runner/${{ runner.os }}/${{ runner.arch }}"
- name: Use Conan download cache (Bash)
run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache"
- name: Set architecture conan profile
if: ${{ inputs.architecture == 'X64' }}
run: conan profile update settings.arch=x86_64 default
- name: Create the Packages (Bash)
run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING --json "cura_inst/conan_install_info.json"

View File

@ -114,7 +114,9 @@ jobs:
run: conan profile new default --detect --force
- name: Get Conan configuration
run: conan config install https://github.com/Ultimaker/conan-config.git
run: |
conan config install https://github.com/Ultimaker/conan-config.git
conan config install https://github.com/Ultimaker/conan-config.git -a "-b runner/${{ runner.os }}/${{ runner.arch }}"
- name: Use Conan download cache (Powershell)
run: conan config set storage.download_cache="C:\Users\runneradmin\.conan\conan_download_cache"

View File

@ -111,11 +111,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
# Parent can be None if node is just loaded.
if self._isSingularOneAtATimeNode():
hull = self.getConvexHullHeadFull()
if hull is None:
return None
hull = self._add2DAdhesionMargin(hull)
return hull
return self.getConvexHullHeadFull()
return self._compute2DConvexHull()
@ -323,6 +319,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
def _compute2DConvexHeadFull(self) -> Optional[Polygon]:
convex_hull = self._compute2DConvexHull()
convex_hull = self._add2DAdhesionMargin(convex_hull)
if convex_hull:
return convex_hull.getMinkowskiHull(self._getHeadAndFans())
return None

View File

@ -153,6 +153,6 @@ if __name__ == "__main__":
app_name = f"{args.app_name}.app"
if args.build_pkg:
create_pkg_installer(args.filename + ".pkg", args.dist_path, cura_version, app_name)
create_pkg_installer(f"{args.filename}.pkg", args.dist_path, cura_version, app_name)
if args.build_dmg:
create_dmg(args.filename + ".dmg", args.dist_path, args.source_path, app_name)
create_dmg(f"{args.filename}.dmg", args.dist_path, args.source_path, app_name)

View File

@ -1,6 +1,7 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import os
import os.path
from UM.Application import Application
@ -143,38 +144,44 @@ class RemovableDriveOutputDevice(OutputDevice):
def _onFinished(self, job):
if self._stream:
# Explicitly closing the stream flushes the write-buffer
error = job.getError()
try:
# Explicitly closing the stream flushes the write-buffer
self._stream.close()
self._stream = None
except:
Logger.logException("w", "An exception occurred while trying to write to removable drive.")
message = Message(catalog.i18nc("@info:status", "Could not save to removable drive {0}: {1}").format(self.getName(),str(job.getError())),
title = catalog.i18nc("@info:title", "Error"),
message_type = Message.MessageType.ERROR)
except Exception as e:
if not error:
# Only log new error if there was no previous one
error = e
self._stream = None
self._writing = False
self.writeFinished.emit(self)
if not error:
message = Message(
catalog.i18nc("@info:status", "Saved to Removable Drive {0} as {1}").format(self.getName(),
os.path.basename(
job.getFileName())),
title=catalog.i18nc("@info:title", "File Saved"),
message_type=Message.MessageType.POSITIVE)
message.addAction("eject", catalog.i18nc("@action:button", "Eject"), "eject",
catalog.i18nc("@action", "Eject removable device {0}").format(self.getName()))
message.actionTriggered.connect(self._onActionTriggered)
message.show()
self.writeSuccess.emit(self)
else:
try:
os.remove(job.getFileName())
except Exception as e:
Logger.logException("e", "Exception when trying to remove incomplete exported file %s",
str(job.getFileName()))
message = Message(catalog.i18nc("@info:status",
"Could not save to removable drive {0}: {1}").format(self.getName(),
str(job.getError())),
title=catalog.i18nc("@info:title", "Error"),
message_type=Message.MessageType.ERROR)
message.show()
self.writeError.emit(self)
return
self._writing = False
self.writeFinished.emit(self)
if job.getResult():
message = Message(catalog.i18nc("@info:status", "Saved to Removable Drive {0} as {1}").format(self.getName(), os.path.basename(job.getFileName())),
title = catalog.i18nc("@info:title", "File Saved"),
message_type = Message.MessageType.POSITIVE)
message.addAction("eject", catalog.i18nc("@action:button", "Eject"), "eject", catalog.i18nc("@action", "Eject removable device {0}").format(self.getName()))
message.actionTriggered.connect(self._onActionTriggered)
message.show()
self.writeSuccess.emit(self)
else:
message = Message(catalog.i18nc("@info:status",
"Could not save to removable drive {0}: {1}").format(self.getName(),
str(job.getError())),
title = catalog.i18nc("@info:title", "Error"),
message_type = Message.MessageType.ERROR)
message.show()
self.writeError.emit(self)
job.getStream().close()
def _onActionTriggered(self, message, action):
if action == "eject":

View File

@ -37,24 +37,13 @@ class NewPrinterDetectedMessage(Message):
def finalize(self, new_devices_added, new_output_devices):
self.setProgress(None)
num_devices_added = len(new_devices_added)
max_disp_devices = 3
if num_devices_added > max_disp_devices:
num_hidden = num_devices_added - max_disp_devices
device_name_list = ["<li>{} ({})</li>".format(device.name, device.printerTypeName) for device in
new_output_devices[0: max_disp_devices]]
device_name_list.append(
"<li>" + self.i18n_catalog.i18ncp("info:{0} gets replaced by a number of printers", "... and {0} other",
"... and {0} others", num_hidden) + "</li>")
device_names = "".join(device_name_list)
else:
device_names = "".join(
["<li>{} ({})</li>".format(device.name, device.printerTypeName) for device in new_devices_added])
if new_devices_added:
message_text = self.i18n_catalog.i18nc("info:status",
"Printers added from Digital Factory:") + f"<ul>{device_names}</ul>"
device_names = ""
for device in new_devices_added:
device_names = device_names + "<li>{} ({})</li>".format(device.name, device.printerTypeName)
message_title = self.i18n_catalog.i18nc("info:status", "Printers added from Digital Factory:")
message_text = f"{message_title}<ul>{device_names}</ul>"
self.setText(message_text)
else:
self.hide()

View File

@ -1664,16 +1664,28 @@
"small_skin_width":
{
"label": "Small Top/Bottom Width",
"description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions.",
"description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions. Off for the topmost (air-exposed) layer by default (see 'Small Top/Bottom On Surface').",
"value": "skin_line_width * 2",
"default_value": 1,
"minimum_value": "0",
"maximum_value_warning": "skin_line_width * 3",
"type": "float",
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
"limit_to_extruder": "top_bottom_extruder_nr",
"settable_per_mesh": true,
"unit": "mm"
},
"small_skin_on_surface":
{
"label": "Small Top/Bottom On Surface",
"description": "Enable small (up to 'Small Top/Bottom Width') regions on the topmost skinned layer (exposed to air) to be filled with walls instead of the default pattern.",
"value": "False",
"default_value": false,
"type": "bool",
"enabled": "small_skin_width > 0 and top_layers > 0",
"limit_to_extruder": "top_bottom_extruder_nr",
"settable_per_mesh": true
},
"skin_no_small_gaps_heuristic":
{
"label": "No Skin in Z Gaps",

View File

@ -5,13 +5,14 @@
"metadata":
{
"visible": true,
"author": "willuhmjs",
"platform": "kingroon_kp3s.stl",
"quality_definition": "kingroon_base",
"author": "willuhmjs"
"quality_definition": "kingroon_base"
},
"overrides":
{
"machine_acceleration": { "value": 1000 },
"machine_depth": { "default_value": 200 },
"machine_height": { "default_value": 200 },
"machine_max_acceleration_e": { "value": 1000 },
"machine_max_acceleration_x": { "value": 1000 },
@ -23,7 +24,7 @@
"machine_max_feedrate_z": { "value": 4 },
"machine_max_jerk_xy": { "value": 15 },
"machine_max_jerk_z": { "value": 0.4 },
"machine_name": { "default_value": "Kingroon KP3S" },
"machine_name": { "default_value": "Kingroon KP3S Pro" },
"machine_steps_per_mm_e": { "value": 764 },
"machine_steps_per_mm_x": { "value": 160 },
"machine_steps_per_mm_y": { "value": 160 },

View File

@ -57,7 +57,7 @@
[25, 49],
[25, -49],
[-25, -49],
[25, 49]
[-25, 49]
]
},
"machine_heated_bed": { "default_value": true },

View File

@ -54,7 +54,7 @@
[25, 49],
[25, -49],
[-25, -49],
[25, 49]
[-25, 49]
]
},
"machine_heated_bed": { "default_value": true },

View File

@ -51,7 +51,7 @@
[25, 49],
[25, -49],
[-25, -49],
[25, 49]
[-25, 49]
]
},
"machine_heated_bed": { "default_value": true },

View File

@ -60,6 +60,7 @@ Item
property alias showProfileFolder: showProfileFolderAction
property alias documentation: documentationAction
property alias showTroubleshooting: showTroubleShootingAction
property alias openSponsershipPage: openSponsershipPageAction
property alias reportBug: reportBugAction
property alias whatsNew: whatsNewAction
property alias about: aboutAction
@ -90,6 +91,13 @@ Item
text: catalog.i18nc("@action:inmenu", "Show Online Troubleshooting")
}
Action
{
id: openSponsershipPageAction
onTriggered: Qt.openUrlExternally("https://ultimaker.com/software/ultimaker-cura/sponsor/")
text: catalog.i18nc("@action:inmenu", "Sponsor Cura")
}
Action
{
id: toggleFullScreenAction

View File

@ -57,10 +57,10 @@ Popup
permissionsRequired: []
},
{
displayName: "UltiMaker Academy", //Not translated, since it's a brand name.
thumbnail: UM.Theme.getIcon("Knowledge"),
description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with UltiMaker e-learning."),
link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy",
displayName: catalog.i18nc("@label:button", "Sponsor Cura"),
thumbnail: UM.Theme.getIcon("Heart"),
description: catalog.i18nc("@tooltip:button", "Show your support for Cura with a donation."),
link: "https://ultimaker.com/software/ultimaker-cura/sponsor/",
permissionsRequired: []
},
{

View File

@ -17,6 +17,7 @@ Cura.Menu
Cura.MenuItem { action: Cura.Actions.showTroubleshooting}
Cura.MenuItem { action: Cura.Actions.documentation }
Cura.MenuItem { action: Cura.Actions.reportBug }
Cura.MenuItem { action: Cura.Actions.openSponsershipPage }
Cura.MenuSeparator { }
Cura.MenuItem { action: Cura.Actions.whatsNew }
Cura.MenuItem { action: Cura.Actions.about }

View File

@ -4,41 +4,11 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
import UM 1.5 as UM
import UM 1.7 as UM
import Cura 1.1 as Cura
//
// Cura-style TextArea with scrolls
//
Flickable
// Wrapper to UM.ScrollableTextArea which was originally placed here
UM.ScrollableTextArea
{
id: scrollableTextAreaBase
property bool do_borders: true
property var back_color: UM.Theme.getColor("main_background")
property alias textArea: flickableTextArea
ScrollBar.vertical: UM.ScrollBar {}
TextArea.flickable: TextArea
{
id: flickableTextArea
background: Rectangle //Providing the background color and border.
{
anchors.fill: parent
anchors.margins: -border.width
color: scrollableTextAreaBase.back_color
border.color: UM.Theme.getColor("thick_lining")
border.width: scrollableTextAreaBase.do_borders ? UM.Theme.getSize("default_lining").width : 0
}
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
textFormat: TextEdit.PlainText
renderType: Text.NativeRendering
wrapMode: Text.Wrap
selectByMouse: true
}
}

View File

@ -34,6 +34,8 @@ bottom_thickness
bottom_layers
ironing_enabled
skin_monotonic
small_skin_width
small_skin_on_surface
[infill]
infill_extruder_nr

View File

@ -60,6 +60,7 @@ skin_monotonic
connect_skin_polygons
skin_angles
small_skin_width
small_skin_on_surface
skin_no_small_gaps_heuristic
skin_outline_count
ironing_enabled

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
<path d="M 10.152344 1.246094 C 9.238281 1.449219 8.480469 1.976562 7.972656 2.765625 C 7.777344 3.070312 7.5 3.726562 7.5 3.890625 C 7.5 4.046875 7.621094 4.242188 7.757812 4.304688 C 8.0625 4.445312 8.300781 4.316406 8.4375 3.953125 C 8.851562 2.851562 9.621094 2.210938 10.664062 2.121094 C 11.789062 2.027344 12.867188 2.835938 13.359375 4.140625 C 13.527344 4.578125 13.667969 4.734375 13.898438 4.734375 C 14.132812 4.734375 14.277344 4.574219 14.457031 4.140625 C 14.679688 3.578125 14.886719 3.257812 15.28125 2.859375 C 15.792969 2.34375 16.308594 2.109375 16.929688 2.109375 C 17.496094 2.109375 18.144531 2.347656 18.566406 2.714844 C 18.867188 2.976562 19.195312 3.472656 19.347656 3.890625 C 19.507812 4.355469 19.546875 5.15625 19.433594 5.648438 C 19.160156 6.816406 18.191406 7.933594 15.355469 10.367188 L 13.960938 11.570312 L 12.707031 10.507812 C 10.703125 8.8125 9.902344 8.066406 9.160156 7.203125 C 8.996094 7.011719 8.949219 6.984375 8.785156 6.984375 C 8.511719 6.988281 8.296875 7.199219 8.296875 7.472656 C 8.296875 7.820312 9.484375 9.015625 11.578125 10.78125 C 12.078125 11.203125 12.773438 11.789062 13.117188 12.078125 C 13.738281 12.609375 13.875 12.691406 14.078125 12.636719 C 14.199219 12.609375 16.867188 10.332031 17.804688 9.460938 C 19.425781 7.949219 20.179688 6.839844 20.390625 5.644531 C 20.476562 5.171875 20.429688 4.253906 20.296875 3.796875 C 20.023438 2.847656 19.316406 1.953125 18.515625 1.554688 C 18.035156 1.316406 17.683594 1.222656 17.152344 1.183594 C 15.960938 1.105469 14.871094 1.679688 14.121094 2.777344 C 13.929688 3.054688 13.894531 3.089844 13.851562 3.019531 C 13.828125 2.976562 13.683594 2.773438 13.535156 2.574219 C 13.078125 1.960938 12.515625 1.546875 11.835938 1.332031 C 11.351562 1.175781 10.628906 1.140625 10.152344 1.246094 Z M 10.152344 1.246094 "/>
<path d="M 7.613281 5.457031 C 7.441406 5.628906 7.410156 5.785156 7.519531 5.996094 C 7.738281 6.417969 8.390625 6.230469 8.390625 5.738281 C 8.390625 5.558594 8.113281 5.296875 7.921875 5.296875 C 7.816406 5.296875 7.730469 5.339844 7.613281 5.457031 Z M 7.613281 5.457031 "/>
<path d="M 0.160156 11.738281 L 0 11.898438 L 0 16.238281 C 0 20.957031 -0.0078125 20.773438 0.257812 20.898438 C 0.414062 20.964844 3.410156 20.976562 3.65625 20.90625 C 4.011719 20.808594 4.332031 20.539062 4.574219 20.128906 C 4.621094 20.042969 4.636719 20.042969 5.019531 20.128906 C 5.671875 20.269531 5.941406 20.394531 7.457031 21.304688 C 8.257812 21.789062 9.085938 22.253906 9.296875 22.339844 C 10.617188 22.910156 12.121094 22.976562 13.5 22.535156 C 13.691406 22.472656 15.277344 21.792969 17.015625 21.023438 C 18.753906 20.257812 20.683594 19.410156 21.304688 19.140625 C 23.105469 18.351562 23.25 18.277344 23.523438 17.980469 C 23.855469 17.617188 23.972656 17.296875 23.976562 16.757812 C 23.976562 16.382812 23.957031 16.304688 23.828125 16.027344 C 23.746094 15.851562 23.605469 15.632812 23.511719 15.527344 C 23.15625 15.136719 22.453125 14.898438 21.929688 14.996094 C 21.789062 15.019531 20.660156 15.390625 19.410156 15.816406 C 18.167969 16.242188 17.148438 16.59375 17.140625 16.59375 C 17.136719 16.59375 17.132812 16.421875 17.128906 16.203125 C 17.128906 15.871094 17.109375 15.773438 16.984375 15.515625 C 16.714844 14.945312 16.246094 14.566406 15.664062 14.441406 C 15.511719 14.410156 14.792969 14.390625 13.765625 14.390625 L 12.117188 14.390625 L 10.945312 13.730469 C 10.304688 13.363281 9.613281 12.988281 9.421875 12.890625 C 8.757812 12.554688 8.734375 12.546875 6.554688 12.527344 L 4.601562 12.511719 L 4.542969 12.371094 C 4.457031 12.160156 4.105469 11.820312 3.851562 11.703125 C 3.640625 11.605469 3.5625 11.601562 1.976562 11.585938 L 0.324219 11.574219 Z M 3.589844 12.675781 L 3.75 12.835938 L 3.75 16.238281 C 3.75 18.773438 3.734375 19.667969 3.695312 19.757812 C 3.585938 19.996094 3.484375 20.015625 2.15625 20.015625 L 0.9375 20.015625 L 0.9375 12.515625 L 3.429688 12.515625 Z M 8.671875 13.578125 C 8.816406 13.632812 9.542969 14.019531 10.289062 14.4375 C 11.035156 14.859375 11.738281 15.230469 11.855469 15.265625 C 12.007812 15.316406 12.472656 15.328125 13.757812 15.328125 L 15.449219 15.328125 L 15.683594 15.445312 C 15.816406 15.511719 15.960938 15.617188 16.011719 15.691406 C 16.351562 16.144531 16.234375 16.777344 15.765625 17.066406 L 15.585938 17.179688 L 12.953125 17.203125 L 10.3125 17.226562 L 10.183594 17.351562 C 9.992188 17.546875 10.003906 17.820312 10.210938 18.003906 L 10.359375 18.140625 L 15.585938 18.140625 L 15.914062 18.019531 C 16.097656 17.953125 17.222656 17.566406 18.421875 17.152344 C 19.621094 16.734375 20.90625 16.292969 21.28125 16.164062 C 22.035156 15.902344 22.320312 15.871094 22.613281 16.007812 C 23.003906 16.195312 23.171875 16.746094 22.960938 17.152344 C 22.898438 17.269531 22.800781 17.398438 22.734375 17.445312 C 22.667969 17.492188 20.527344 18.453125 17.976562 19.574219 C 14.753906 20.996094 13.199219 21.65625 12.890625 21.742188 C 12.507812 21.84375 12.347656 21.859375 11.695312 21.863281 C 10.902344 21.867188 10.652344 21.828125 10.03125 21.621094 C 9.546875 21.460938 9.410156 21.382812 7.878906 20.472656 C 7.144531 20.027344 6.445312 19.621094 6.328125 19.566406 C 6.027344 19.421875 5.429688 19.238281 5.027344 19.171875 L 4.6875 19.117188 L 4.6875 13.449219 L 6.554688 13.460938 C 8.300781 13.480469 8.429688 13.484375 8.671875 13.578125 Z M 8.671875 13.578125 "/>
<path d="M 2.035156 13.613281 C 1.859375 13.785156 1.832031 13.941406 1.941406 14.152344 C 2.160156 14.574219 2.8125 14.386719 2.8125 13.894531 C 2.8125 13.714844 2.535156 13.453125 2.34375 13.453125 C 2.234375 13.453125 2.152344 13.496094 2.035156 13.613281 Z M 2.035156 13.613281 "/>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.2mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.2

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.3mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.3

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.4mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.4

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.5mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.5

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.6mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.6

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 0.8mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 0.8

View File

@ -0,0 +1,13 @@
[general]
definition = kingroon_kp3s_pro
name = 1.0mm Nozzle
version = 4
[metadata]
hardware_type = nozzle
setting_version = 22
type = variant
[values]
machine_nozzle_size = 1.0