Merge branch 'replace_controls_1_for_controls_2' into CURA-8688_qt6_cleanup

# Conflicts:
#	resources/qml/Widgets/Menu.qml
#	resources/qml/Widgets/MenuItem.qml
#	resources/themes/cura-dark/theme.json
#	resources/themes/cura-light/theme.json
This commit is contained in:
j.delarago 2022-02-28 08:51:42 +01:00
commit e2fe50baf1
155 changed files with 406 additions and 667 deletions

View file

@ -34,7 +34,7 @@ Build scripts
------------- -------------
Please check out [cura-build](https://github.com/Ultimaker/cura-build) for detailed building instructions. Please check out [cura-build](https://github.com/Ultimaker/cura-build) for detailed building instructions.
If you want to build the entire environment from scratch before building Cura as well, [cura-build-environment](https://github.com/Ultimaker/cura-build) might be a starting point before cura-build. (Again, see cura-build for more details.) If you want to build the entire environment from scratch before building Cura as well, [cura-build-environment](https://github.com/Ultimaker/cura-build-environment) might be a starting point before cura-build. (Again, see cura-build for more details.)
Running from Source Running from Source
------------- -------------

View file

@ -39,6 +39,7 @@ class PackageModel(QObject):
self._package_type = package_data.get("package_type", "") self._package_type = package_data.get("package_type", "")
self._is_bundled = package_data.get("is_bundled", False) self._is_bundled = package_data.get("is_bundled", False)
self._icon_url = package_data.get("icon_url", "") self._icon_url = package_data.get("icon_url", "")
self._marketplace_url = package_data.get("marketplace_url", "")
self._display_name = package_data.get("display_name", catalog.i18nc("@label:property", "Unknown Package")) self._display_name = package_data.get("display_name", catalog.i18nc("@label:property", "Unknown Package"))
tags = package_data.get("tags", []) tags = package_data.get("tags", [])
self._is_checked_by_ultimaker = (self._package_type == "plugin" and "verified" in tags) or ( self._is_checked_by_ultimaker = (self._package_type == "plugin" and "verified" in tags) or (
@ -210,6 +211,10 @@ class PackageModel(QObject):
def packageId(self) -> str: def packageId(self) -> str:
return self._package_id return self._package_id
@pyqtProperty(str, constant=True)
def marketplaceURL(self)-> str:
return self._marketplace_url
@pyqtProperty(str, constant = True) @pyqtProperty(str, constant = True)
def packageType(self) -> str: def packageType(self) -> str:
return self._package_type return self._package_type

View file

@ -117,9 +117,6 @@ class RemotePackageList(PackageList):
return return
for package_data in response_data["data"]: for package_data in response_data["data"]:
package_id = package_data["package_id"]
if package_id in self._package_manager.local_packages_ids:
continue # We should only show packages which are not already installed
try: try:
package = PackageModel(package_data, parent = self) package = PackageModel(package_data, parent = self)
self._connectManageButtonSignals(package) self._connectManageButtonSignals(package)

View file

@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M39 14V8H27V14H21V8H9V14H7C6.20435 14 5.44129 14.3161 4.87868 14.8787C4.31607 15.4413 4 16.2044 4 17V37C4 37.7956 4.31607 38.5587 4.87868 39.1213C5.44129 39.6839 6.20435 40 7 40H41C41.7957 40 42.5587 39.6839 43.1213 39.1213C43.6839 38.5587 44 37.7956 44 37V17C44 16.2044 43.6839 15.4413 43.1213 14.8787C42.5587 14.3161 41.7957 14 41 14H39ZM29 10H37V14H29V10ZM11 10H19V14H11V10ZM42 38H6V16H42V38Z" fill="#000E1A"/>
</svg>

After

Width:  |  Height:  |  Size: 526 B

View file

@ -0,0 +1,3 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 4C18.6975 4.00609 13.614 6.11518 9.86459 9.86459C6.11518 13.614 4.00609 18.6975 4 24V42H6V32.66C7.54979 35.8792 9.93405 38.6241 12.9046 40.6092C15.8752 42.5942 19.3236 43.7468 22.8908 43.947C26.4579 44.1472 30.0136 43.3876 33.1876 41.7474C36.3616 40.1071 39.038 37.6462 40.9382 34.6206C42.8385 31.595 43.893 28.1155 43.9922 24.544C44.0914 20.9726 43.2315 17.4399 41.5021 14.3136C39.7727 11.1872 37.237 8.5815 34.1589 6.76765C31.0808 4.9538 27.5728 3.99809 24 4ZM24 42C20.4399 42 16.9598 40.9443 13.9997 38.9665C11.0397 36.9886 8.73255 34.1774 7.37017 30.8883C6.00779 27.5992 5.65133 23.98 6.34586 20.4884C7.0404 16.9967 8.75473 13.7894 11.2721 11.2721C13.7894 8.75473 16.9967 7.0404 20.4884 6.34587C23.98 5.65133 27.5992 6.00779 30.8883 7.37017C34.1774 8.73255 36.9886 11.0397 38.9665 13.9997C40.9443 16.9598 42 20.4399 42 24C41.9947 28.7723 40.0966 33.3476 36.7221 36.7221C33.3476 40.0966 28.7723 41.9947 24 42ZM24 17C22.6155 17 21.2622 17.4105 20.111 18.1797C18.9599 18.9489 18.0627 20.0421 17.5328 21.3212C17.003 22.6003 16.8644 24.0078 17.1345 25.3656C17.4046 26.7235 18.0713 27.9708 19.0503 28.9498C20.0292 29.9287 21.2765 30.5954 22.6344 30.8655C23.9922 31.1356 25.3997 30.997 26.6788 30.4672C27.9579 29.9373 29.0511 29.0401 29.8203 27.889C30.5895 26.7379 31 25.3845 31 24C30.9979 22.1441 30.2598 20.3648 28.9475 19.0525C27.6352 17.7402 25.8559 17.0021 24 17ZM24 29C23.0111 29 22.0444 28.7068 21.2221 28.1574C20.3999 27.6079 19.759 26.8271 19.3806 25.9134C19.0022 24.9998 18.9031 23.9945 19.0961 23.0246C19.289 22.0546 19.7652 21.1637 20.4645 20.4645C21.1637 19.7652 22.0546 19.289 23.0245 19.0961C23.9945 18.9031 24.9998 19.0022 25.9134 19.3806C26.827 19.759 27.6079 20.3999 28.1573 21.2222C28.7068 22.0444 29 23.0111 29 24C28.9984 25.3256 28.4712 26.5965 27.5338 27.5338C26.5965 28.4712 25.3256 28.9984 24 29ZM24 11C25.7079 10.9954 27.3997 11.3295 28.9776 11.9831C30.5554 12.6367 31.988 13.5967 33.1924 14.8076L31.7783 16.2217C30.7592 15.1971 29.547 14.3848 28.2118 13.8318C26.8767 13.2788 25.4451 12.9961 24 13V11Z" fill="#000E1A"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -14,8 +14,8 @@ UM.Dialog
{ {
id: licenseDialog id: licenseDialog
title: catalog.i18nc("@button", "Plugin license agreement") title: catalog.i18nc("@button", "Plugin license agreement")
minimumWidth: UM.Theme.getSize("license_window_minimum").width minimumWidth: UM.Theme.getSize("modal_window_minimum").width
minimumHeight: UM.Theme.getSize("license_window_minimum").height minimumHeight: UM.Theme.getSize("modal_window_minimum").height
width: minimumWidth width: minimumWidth
height: minimumHeight height: minimumHeight
backgroundColor: UM.Theme.getColor("main_background") backgroundColor: UM.Theme.getColor("main_background")

View file

@ -13,13 +13,14 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner"); bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner");
bannerIcon: UM.Theme.getIcon("ArrowDoubleCircleRight") bannerIcon: UM.Theme.getIcon("ArrowDoubleCircleRight")
bannerText: catalog.i18nc("@text", "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.") bannerText: catalog.i18nc("@text", "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.")
bannerReadMoreUrl: "" // TODO add when support page is ready bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/4411125921426/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-manage"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false); UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false);
bannerVisible = false; bannerVisible = false;
} }
searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/plugins?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-plugins-browser" searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/plugins?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-plugins-browser"
packagesManageableInListView: true showUpdateButton: true
showInstallButton: true
showDisableButton: true
model: manager.LocalPackageList model: manager.LocalPackageList
} }

View file

@ -46,198 +46,182 @@ Window
{ {
anchors.fill: parent anchors.fill: parent
color: UM.Theme.getColor("main_background") color: UM.Theme.getColor("main_background")
}
//The Marketplace can have a page in front of everything with package details. The stack view controls its visibility.
StackView
{
id: contextStack
anchors.fill: parent
//The Marketplace can have a page in front of everything with package details. The stack view controls its visibility. initialItem: packageBrowse
StackView
ColumnLayout
{ {
id: contextStack id: packageBrowse
anchors.fill: parent
initialItem: packageBrowse spacing: UM.Theme.getSize("narrow_margin").height
ColumnLayout // Page title.
Item
{ {
id: packageBrowse implicitWidth: parent.width
implicitHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
spacing: UM.Theme.getSize("default_margin").height Label
// Page title.
Item
{ {
Layout.preferredWidth: parent.width id: pageTitle
Layout.preferredHeight: childrenRect.height + UM.Theme.getSize("default_margin").height anchors
Label
{ {
id: pageTitle left: parent.left
anchors leftMargin: UM.Theme.getSize("default_margin").width
{ right: parent.right
left: parent.left rightMargin: UM.Theme.getSize("default_margin").width
leftMargin: UM.Theme.getSize("default_margin").width bottom: parent.bottom
right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width
bottom: parent.bottom
}
font: UM.Theme.getFont("large")
color: UM.Theme.getColor("text")
text: content.item ? content.item.pageTitle: catalog.i18nc("@title", "Loading...")
} }
}
OnboardBanner font: UM.Theme.getFont("large")
{ color: UM.Theme.getColor("text")
visible: content.item && content.item.bannerVisible text: content.item ? content.item.pageTitle: catalog.i18nc("@title", "Loading...")
text: content.item && content.item.bannerText
icon: content.item && content.item.bannerIcon
onRemove: content.item && content.item.onRemoveBanner
readMoreUrl: content.item && content.item.bannerReadMoreUrl
} }
}
// Search & Top-Level Tabs OnboardBanner
Item {
visible: content.item && content.item.bannerVisible
text: content.item && content.item.bannerText
icon: content.item && content.item.bannerIcon
onRemove: content.item && content.item.onRemoveBanner
readMoreUrl: content.item && content.item.bannerReadMoreUrl
Layout.fillWidth: true
Layout.leftMargin: UM.Theme.getSize("default_margin").width
Layout.rightMargin: UM.Theme.getSize("default_margin").width
}
// Search & Top-Level Tabs
Item
{
implicitHeight: childrenRect.height
implicitWidth: parent.width - 2 * UM.Theme.getSize("default_margin").width
Layout.alignment: Qt.AlignHCenter
RowLayout
{ {
Layout.preferredHeight: childrenRect.height width: parent.width
Layout.preferredWidth: parent.width - 2 * UM.Theme.getSize("thin_margin").width height: UM.Theme.getSize("button_icon").height + UM.Theme.getSize("default_margin").height
RowLayout spacing: UM.Theme.getSize("thin_margin").width
Cura.SearchBar
{ {
width: parent.width id: searchBar
height: UM.Theme.getSize("button_icon").height + UM.Theme.getSize("default_margin").height implicitHeight: UM.Theme.getSize("button_icon").height
spacing: UM.Theme.getSize("thin_margin").width Layout.fillWidth: true
onTextEdited: searchStringChanged(text)
}
Item // Page selection.
TabBar
{
id: pageSelectionTabBar
Layout.alignment: Qt.AlignRight
height: UM.Theme.getSize("button_icon").height
spacing: 0
background: Rectangle { color: "transparent" }
currentIndex: manager.tabShown
onCurrentIndexChanged:
{ {
Layout.preferredHeight: parent.height manager.tabShown = currentIndex
Layout.preferredWidth: searchBar.visible ? UM.Theme.getSize("thin_margin").width : 0 searchBar.text = "";
Layout.fillWidth: ! searchBar.visible searchBar.visible = currentItem.hasSearch;
content.source = currentItem.sourcePage;
} }
Cura.SearchBar PackageTypeTab
{ {
id: searchBar id: pluginTabText
Layout.preferredHeight: UM.Theme.getSize("button_icon").height width: implicitWidth
Layout.fillWidth: true text: catalog.i18nc("@button", "Plugins")
onTextEdited: searchStringChanged(text) property string sourcePage: "Plugins.qml"
property bool hasSearch: true
} }
PackageTypeTab
// Page selection.
TabBar
{ {
id: pageSelectionTabBar id: materialsTabText
Layout.alignment: Qt.AlignRight width: implicitWidth
height: UM.Theme.getSize("button_icon").height text: catalog.i18nc("@button", "Materials")
spacing: 0 property string sourcePage: "Materials.qml"
background: Rectangle { color: "transparent" } property bool hasSearch: true
currentIndex: manager.tabShown }
ManagePackagesButton
{
property string sourcePage: "ManagedPackages.qml"
property bool hasSearch: false
onCurrentIndexChanged: Cura.NotificationIcon
{ {
manager.tabShown = currentIndex anchors
searchBar.text = "";
searchBar.visible = currentItem.hasSearch;
content.source = currentItem.sourcePage;
}
PackageTypeTab
{
id: pluginTabText
width: implicitWidth
text: catalog.i18nc("@button", "Plugins")
property string sourcePage: "Plugins.qml"
property bool hasSearch: true
}
PackageTypeTab
{
id: materialsTabText
width: implicitWidth
text: catalog.i18nc("@button", "Materials")
property string sourcePage: "Materials.qml"
property bool hasSearch: true
}
ManagePackagesButton
{
property string sourcePage: "ManagedPackages.qml"
property bool hasSearch: false
Cura.NotificationIcon
{ {
anchors horizontalCenter: parent.right
{ verticalCenter: parent.top
horizontalCenter: parent.right }
verticalCenter: parent.top visible: CuraApplication.getPackageManager().packagesWithUpdate.length > 0
}
visible: CuraApplication.getPackageManager().packagesWithUpdate.length > 0
labelText: labelText:
{ {
const itemCount = CuraApplication.getPackageManager().packagesWithUpdate.length const itemCount = CuraApplication.getPackageManager().packagesWithUpdate.length
return itemCount > 9 ? "9+" : itemCount return itemCount > 9 ? "9+" : itemCount
}
} }
} }
} }
TextMetrics
{
id: pluginTabTextMetrics
text: pluginTabText.text
font: pluginTabText.font
}
TextMetrics
{
id: materialsTabTextMetrics
text: materialsTabText.text
font: materialsTabText.font
}
} }
} }
}
FontMetrics FontMetrics
{ {
id: fontMetrics id: fontMetrics
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
} }
Cura.TertiaryButton Cura.TertiaryButton
{ {
text: catalog.i18nc("@info", "Search in the browser") text: catalog.i18nc("@info", "Search in the browser")
iconSource: UM.Theme.getIcon("LinkExternal") iconSource: UM.Theme.getIcon("LinkExternal")
visible: pageSelectionTabBar.currentItem.hasSearch visible: pageSelectionTabBar.currentItem.hasSearch
isIconOnRightSide: true isIconOnRightSide: true
height: fontMetrics.height height: fontMetrics.height
textFont: fontMetrics.font textFont: fontMetrics.font
textColor: UM.Theme.getColor("text") textColor: UM.Theme.getColor("text")
onClicked: content.item && Qt.openUrlExternally(content.item.searchInBrowserUrl) onClicked: content.item && Qt.openUrlExternally(content.item.searchInBrowserUrl)
} }
// Page contents.
Rectangle
{
Layout.preferredWidth: parent.width
Layout.fillHeight: true
color: UM.Theme.getColor("detail_background")
// Page contents. // Page contents.
Rectangle Loader
{ {
Layout.preferredWidth: parent.width id: content
Layout.fillHeight: true anchors.fill: parent
color: UM.Theme.getColor("detail_background") anchors.margins: UM.Theme.getSize("default_margin").width
source: "Plugins.qml"
// Page contents. Connections
Loader
{ {
id: content target: content
anchors.fill: parent function onLoaded()
anchors.margins: UM.Theme.getSize("default_margin").width
source: "Plugins.qml"
Connections
{ {
target: content pageTitle.text = content.item.pageTitle
function onLoaded() searchStringChanged.connect(handleSearchStringChanged)
{ }
pageTitle.text = content.item.pageTitle function handleSearchStringChanged(new_search)
searchStringChanged.connect(handleSearchStringChanged) {
} content.item.model.searchString = new_search
function handleSearchStringChanged(new_search)
{
content.item.model.searchString = new_search
}
} }
} }
} }

View file

@ -10,13 +10,14 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner") bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner")
bannerIcon: UM.Theme.getIcon("Spool") bannerIcon: UM.Theme.getIcon("Spool")
bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your Ultimaker 3D printers.") bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your Ultimaker 3D printers.")
bannerReadMoreUrl: "" // TODO add when support page is ready bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-materials"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_material_banner", false); UM.Preferences.setValue("cura/market_place_show_material_banner", false);
bannerVisible = false; bannerVisible = false;
} }
searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/materials?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-materials-browser" searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/materials?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-materials-browser"
packagesManageableInListView: false showUpdateButton: true
showInstallButton: true
model: manager.MaterialPackageList model: manager.MaterialPackageList
} }

View file

@ -16,10 +16,7 @@ Rectangle
property var onRemove property var onRemove
property string readMoreUrl property string readMoreUrl
Layout.preferredHeight: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height implicitHeight: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height
Layout.fillWidth: true
Layout.margins: UM.Theme.getSize("default_margin").width
color: UM.Theme.getColor("action_panel_secondary") color: UM.Theme.getColor("action_panel_secondary")
// Icon // Icon

View file

@ -11,7 +11,9 @@ import Cura 1.6 as Cura
Rectangle Rectangle
{ {
property alias packageData: packageCardHeader.packageData property alias packageData: packageCardHeader.packageData
property alias manageableInListView: packageCardHeader.showManageButtons property alias showUpdateButton: packageCardHeader.showUpdateButton
property alias showDisableButton: packageCardHeader.showDisableButton
property alias showInstallButton: packageCardHeader.showInstallButton
height: childrenRect.height height: childrenRect.height
color: UM.Theme.getColor("main_background") color: UM.Theme.getColor("main_background")
@ -31,64 +33,14 @@ Rectangle
{ {
id: descriptionLabel id: descriptionLabel
width: parent.width width: parent.width
property real lastLineWidth: 0; //Store the width of the last line, to properly position the elision.
text: packageData.description text: packageData.description
textFormat: Text.PlainText //Must be plain text, or we won't get onLineLaidOut signals. Don't auto-detect!
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")
maximumLineCount: 2 maximumLineCount: 2
wrapMode: Text.Wrap wrapMode: Text.Wrap
elide: Text.ElideRight elide: Text.ElideRight
visible: text !== "" visible: text !== ""
onLineLaidOut:
{
if(truncated && line.isLast)
{
let max_line_width = parent.width - readMoreButton.width - fontMetrics.advanceWidth("… ") - 2 * UM.Theme.getSize("default_margin").width;
if(line.implicitWidth > max_line_width)
{
line.width = max_line_width;
}
else
{
line.width = line.implicitWidth - fontMetrics.advanceWidth("…"); //Truncate the ellipsis. We're adding this ourselves.
}
descriptionLabel.lastLineWidth = line.implicitWidth;
}
}
}
Label
{
id: tripleDotLabel
anchors.left: parent.left
anchors.leftMargin: descriptionLabel.lastLineWidth
anchors.bottom: descriptionLabel.bottom
text: "… "
font: descriptionLabel.font
color: descriptionLabel.color
visible: descriptionLabel.truncated && descriptionLabel.text !== ""
}
Cura.TertiaryButton
{
id: readMoreButton
anchors.right: parent.right
anchors.bottom: descriptionLabel.bottom
height: fontMetrics.height //Height of a single line.
text: catalog.i18nc("@info", "Read more")
iconSource: UM.Theme.getIcon("LinkExternal")
visible: descriptionLabel.truncated && descriptionLabel.text !== ""
enabled: visible
leftPadding: UM.Theme.getSize("default_margin").width
rightPadding: UM.Theme.getSize("wide_margin").width
textFont: descriptionLabel.font
isIconOnRightSide: true
onClicked: Qt.openUrlExternally(packageData.packageInfoUrl)
} }
} }
} }

View file

@ -12,10 +12,13 @@ import Cura 1.6 as Cura
// are combined into the reusable "PackageCardHeader" component // are combined into the reusable "PackageCardHeader" component
Item Item
{ {
default property alias contents: contentItem.children; default property alias contents: contentItem.children
property var packageData property var packageData
property bool showManageButtons: false property bool showDisableButton: false
property bool showInstallButton: false
property bool showUpdateButton: false
width: parent.width width: parent.width
height: UM.Theme.getSize("card").height height: UM.Theme.getSize("card").height
@ -32,8 +35,21 @@ Item
} }
width: UM.Theme.getSize("card_icon").width width: UM.Theme.getSize("card_icon").width
height: width height: width
sourceSize.height: height
source: packageData.iconUrl != "" ? packageData.iconUrl : "../images/placeholder.svg" sourceSize.width: width
source:
{
if (packageData.iconUrl != "")
{
return packageData.iconUrl
}
switch (packageData.packageType)
{
case "plugin": return "../images/Plugin.svg";
case "material": return "../images/Spool.svg";
default: return "../images/placeholder.svg";
}
}
} }
ColumnLayout ColumnLayout
@ -103,7 +119,7 @@ Item
color: externalLinkButton.hovered ? UM.Theme.getColor("action_button_hovered"): "transparent" color: externalLinkButton.hovered ? UM.Theme.getColor("action_button_hovered"): "transparent"
radius: externalLinkButton.width / 2 radius: externalLinkButton.width / 2
} }
onClicked: Qt.openUrlExternally(packageData.authorInfoUrl) onClicked: Qt.openUrlExternally(packageData.marketplaceURL)
} }
} }
@ -157,7 +173,7 @@ Item
ManageButton ManageButton
{ {
id: enableManageButton id: enableManageButton
visible: showManageButtons && packageData.isInstalled && !packageData.isToBeInstalled && packageData.packageType != "material" visible: showDisableButton && packageData.isInstalled && !packageData.isToBeInstalled && packageData.packageType != "material"
enabled: !packageData.busy enabled: !packageData.busy
button_style: !packageData.isActive button_style: !packageData.isActive
@ -171,7 +187,7 @@ Item
ManageButton ManageButton
{ {
id: installManageButton id: installManageButton
visible: showManageButtons && (packageData.canDowngrade || !packageData.isBundled) visible: showInstallButton && (packageData.canDowngrade || !packageData.isBundled)
enabled: !packageData.busy enabled: !packageData.busy
busy: packageData.busy busy: packageData.busy
button_style: !(packageData.isInstalled || packageData.isToBeInstalled) button_style: !(packageData.isInstalled || packageData.isToBeInstalled)
@ -201,7 +217,7 @@ Item
ManageButton ManageButton
{ {
id: updateManageButton id: updateManageButton
visible: showManageButtons && packageData.canUpdate visible: showUpdateButton && packageData.canUpdate
enabled: !packageData.busy enabled: !packageData.busy
busy: packageData.busy busy: packageData.busy
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop

View file

@ -31,7 +31,9 @@ Rectangle
PackageCardHeader PackageCardHeader
{ {
id: packageCardHeader id: packageCardHeader
showManageButtons: true showUpdateButton: true
showInstallButton: true
showDisableButton: true
anchors.fill: parent anchors.fill: parent
@ -40,7 +42,10 @@ Rectangle
id: downloadCount id: downloadCount
Layout.preferredWidth: parent.width Layout.preferredWidth: parent.width
Layout.fillHeight: true Layout.fillHeight: true
// It's not the perfect way to handle this, since a package really can have 0 downloads
// But we re-use the package page for the manage plugins as well. The one user that doesn't see
// the num downloads is an acceptable "sacrifice" to make this easy to fix.
visible: packageData.downloadCount != "0"
UM.RecolorImage UM.RecolorImage
{ {
id: downloadsIcon id: downloadsIcon
@ -53,6 +58,7 @@ Rectangle
Label Label
{ {
anchors.verticalCenter: downloadsIcon.verticalCenter anchors.verticalCenter: downloadsIcon.verticalCenter
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")

View file

@ -19,7 +19,10 @@ ListView
property string bannerText property string bannerText
property string bannerReadMoreUrl property string bannerReadMoreUrl
property var onRemoveBanner property var onRemoveBanner
property bool packagesManageableInListView
property bool showUpdateButton
property bool showDisableButton
property bool showInstallButton
clip: true clip: true
@ -53,8 +56,8 @@ ListView
// Vertical ScrollBar, styled similarly to the scrollBar in the settings panel // Vertical ScrollBar, styled similarly to the scrollBar in the settings panel
id: verticalScrollBar id: verticalScrollBar
visible: packages.contentHeight > packages.height visible: packages.contentHeight > packages.height
anchors.right: parent.right
background: Item{} background: Item {}
contentItem: Rectangle contentItem: Rectangle
{ {
@ -81,9 +84,20 @@ ListView
PackageCard PackageCard
{ {
manageableInListView: packages.packagesManageableInListView showUpdateButton: packages.showUpdateButton
showDisableButton: packages.showDisableButton
showInstallButton: packages.showInstallButton
packageData: model.package packageData: model.package
width: parent.width - UM.Theme.getSize("default_margin").width - UM.Theme.getSize("narrow_margin").width width: {
if (verticalScrollBar.visible)
{
return parent.width - UM.Theme.getSize("default_margin").width - UM.Theme.getSize("default_margin").width
}
else
{
return parent.width - UM.Theme.getSize("default_margin").width
}
}
color: cardMouseArea.containsMouse ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("main_background") color: cardMouseArea.containsMouse ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("main_background")
} }
} }

View file

@ -10,13 +10,14 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner") bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner")
bannerIcon: UM.Theme.getIcon("Shop") bannerIcon: UM.Theme.getIcon("Shop")
bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users.") bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users.")
bannerReadMoreUrl: "" // TODO add when support page is ready bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-plugins"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_plugin_banner", false) UM.Preferences.setValue("cura/market_place_show_plugin_banner", false)
bannerVisible = false; bannerVisible = false;
} }
searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/plugins?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-plugins-browser" searchInBrowserUrl: "https://marketplace.ultimaker.com/app/cura/plugins?utm_source=cura&utm_medium=software&utm_campaign=marketplace-search-plugins-browser"
packagesManageableInListView: false showUpdateButton: true
showInstallButton: true
model: manager.PluginPackageList model: manager.PluginPackageList
} }

View file

@ -3,7 +3,7 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.0 import QtQuick.Controls 2.0
import UM 1.3 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
// We show a nice overlay on the 3D viewer when the current output device has no monitor view // We show a nice overlay on the 3D viewer when the current output device has no monitor view
@ -90,7 +90,7 @@ Rectangle
visible: monitorViewComponent.sourceComponent == null visible: monitorViewComponent.sourceComponent == null
// CASE 2: CAN MONITOR & NOT CONNECTED // CASE 2: CAN MONITOR & NOT CONNECTED
Label UM.Label
{ {
anchors anchors
{ {
@ -99,14 +99,10 @@ Rectangle
visible: isNetworkConfigured && !isConnected visible: isNetworkConfigured && !isConnected
text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.") text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.")
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
color: UM.Theme.getColor("text")
wrapMode: Text.WordWrap
lineHeight: UM.Theme.getSize("monitor_text_line_large").height
lineHeightMode: Text.FixedHeight
width: contentWidth width: contentWidth
} }
Label UM.Label
{ {
id: noNetworkLabel id: noNetworkLabel
anchors anchors
@ -116,11 +112,7 @@ Rectangle
visible: !isNetworkConfigured && isNetworkConfigurable visible: !isNetworkConfigured && isNetworkConfigurable
text: catalog.i18nc("@info", "Please connect your printer to the network.") text: catalog.i18nc("@info", "Please connect your printer to the network.")
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
color: UM.Theme.getColor("text")
wrapMode: Text.WordWrap
width: contentWidth width: contentWidth
lineHeight: UM.Theme.getSize("monitor_text_line_large").height
lineHeightMode: Text.FixedHeight
} }
Item Item
{ {
@ -129,7 +121,6 @@ Rectangle
left: noNetworkLabel.left left: noNetworkLabel.left
} }
visible: !isNetworkConfigured && isNetworkConfigurable visible: !isNetworkConfigured && isNetworkConfigurable
height: UM.Theme.getSize("monitor_text_line").height
width: childrenRect.width width: childrenRect.width
UM.RecolorImage UM.RecolorImage
@ -138,8 +129,8 @@ Rectangle
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
color: UM.Theme.getColor("text_link") color: UM.Theme.getColor("text_link")
source: UM.Theme.getIcon("LinkExternal") source: UM.Theme.getIcon("LinkExternal")
width: UM.Theme.getSize("monitor_external_link_icon").width width: UM.Theme.getSize("icon_indicator").width
height: UM.Theme.getSize("monitor_external_link_icon").height height: UM.Theme.getSize("icon_indicator").height
} }
Label Label
{ {

View file

@ -3,7 +3,6 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Controls.Styles 1.2
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura

View file

@ -18,7 +18,7 @@ Button
{ {
anchors.fill: parent anchors.fill: parent
radius: 0.5 * width radius: 0.5 * width
color: parent.enabled ? (parent.hovered ? UM.Theme.getColor("monitor_secondary_button_hover") : "transparent") : UM.Theme.getColor("monitor_icon_disabled") color: parent.enabled ? (parent.hovered ? UM.Theme.getColor("monitor_card_hover") : "transparent") : UM.Theme.getColor("monitor_icon_disabled")
} }
UM.RecolorImage UM.RecolorImage

View file

@ -18,7 +18,7 @@ Item
property var printJob: null property var printJob: null
width: childrenRect.width width: childrenRect.width
height: UM.Theme.getSize("monitor_text_line").height height: percentLabel.height
UM.ProgressBar UM.ProgressBar
{ {
@ -38,15 +38,12 @@ Item
anchors anchors
{ {
left: progressBar.right left: progressBar.right
leftMargin: UM.Theme.getSize("monitor_margin").width leftMargin: UM.Theme.getSize("default_margin").width
verticalCenter: parent.verticalCenter
} }
text: printJob ? Math.round(printJob.progress * 100) + "%" : "0%" text: printJob ? Math.round(printJob.progress * 100) + "%" : "0%"
color: printJob && printJob.isActive ? UM.Theme.getColor("text") : UM.Theme.getColor("monitor_text_disabled") color: printJob && printJob.isActive ? UM.Theme.getColor("text") : UM.Theme.getColor("monitor_text_disabled")
width: contentWidth width: contentWidth
wrapMode: Text.NoWrap wrapMode: Text.NoWrap
// FIXED-LINE-HEIGHT:
height: UM.Theme.getSize("monitor_text_line").height
} }
UM.Label UM.Label
{ {
@ -54,8 +51,7 @@ Item
anchors anchors
{ {
left: percentLabel.right left: percentLabel.right
leftMargin: UM.Theme.getSize("monitor_margin").width leftMargin: UM.Theme.getSize("default_margin").width
verticalCenter: parent.verticalCenter
} }
wrapMode: Text.NoWrap wrapMode: Text.NoWrap
text: text:
@ -111,8 +107,5 @@ Item
} }
} }
width: contentWidth width: contentWidth
// FIXED-LINE-HEIGHT:
height: UM.Theme.getSize("monitor_text_line").height
} }
} }

View file

@ -63,7 +63,7 @@ Item
leftMargin: 36 * screenScaleFactor // TODO: Theme! leftMargin: 36 * screenScaleFactor // TODO: Theme!
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
spacing: 18 * screenScaleFactor // TODO: Theme! spacing: UM.Theme.getSize("default_margin").width
Rectangle Rectangle
{ {
@ -95,9 +95,9 @@ Item
{ {
id: printerNameLabel id: printerNameLabel
color: printer ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading") color: printer ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
height: 18 * screenScaleFactor // TODO: Theme! height: UM.Theme.getSize("default_margin").width
width: parent.width width: parent.width
radius: 2 * screenScaleFactor // TODO: Theme! radius: UM.Theme.getSize("default_radius").width
UM.Label UM.Label
{ {
@ -106,8 +106,6 @@ Item
font: UM.Theme.getFont("large") // 16pt, bold font: UM.Theme.getFont("large") // 16pt, bold
width: parent.width width: parent.width
visible: printer visible: printer
// FIXED-LINE-HEIGHT:
height: parent.height height: parent.height
} }
} }
@ -116,7 +114,7 @@ Item
{ {
color: UM.Theme.getColor("monitor_skeleton_loading") color: UM.Theme.getColor("monitor_skeleton_loading")
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
radius: 2 * screenScaleFactor // TODO: Theme! radius: UM.Theme.getSize("default_radius").width
visible: !printer visible: !printer
width: 48 * screenScaleFactor // TODO: Theme! width: 48 * screenScaleFactor // TODO: Theme!
} }
@ -160,22 +158,16 @@ Item
} }
color: UM.Theme.getColor("text_link") color: UM.Theme.getColor("text_link")
source: UM.Theme.getIcon("LinkExternal") source: UM.Theme.getIcon("LinkExternal")
width: 12 * screenScaleFactor width: UM.Theme.getSize("icon").width
height: 12 * screenScaleFactor height: UM.Theme.getSize("icon").height
} }
} }
MouseArea MouseArea
{ {
anchors.fill: managePrinterLink anchors.fill: managePrinterLink
onClicked: OutputDevice.openPrinterControlPanel() onClicked: OutputDevice.openPrinterControlPanel()
onEntered: onEntered: manageQueueText.font.underline = true
{ onExited: manageQueueText.font.underline = false
manageQueueText.font.underline = true
}
onExited:
{
manageQueueText.font.underline = false
}
} }
} }
@ -327,7 +319,7 @@ Item
leftMargin: 36 * screenScaleFactor // TODO: Theme! leftMargin: 36 * screenScaleFactor // TODO: Theme!
} }
height: childrenRect.height height: childrenRect.height
spacing: 18 * screenScaleFactor // TODO: Theme! spacing: UM.Theme.getSize("default_margin").width
UM.Label UM.Label
{ {
@ -403,9 +395,6 @@ Item
font: UM.Theme.getFont("large") // 16pt, bold font: UM.Theme.getFont("large") // 16pt, bold
text: printer && printer.activePrintJob ? printer.activePrintJob.name : catalog.i18nc("@label", "Untitled") text: printer && printer.activePrintJob ? printer.activePrintJob.name : catalog.i18nc("@label", "Untitled")
width: parent.width width: parent.width
// FIXED-LINE-HEIGHT:
height: 18 * screenScaleFactor // TODO: Theme!
} }
UM.Label UM.Label
@ -421,9 +410,6 @@ Item
elide: Text.ElideRight elide: Text.ElideRight
text: printer && printer.activePrintJob ? printer.activePrintJob.owner : catalog.i18nc("@label", "Anonymous") text: printer && printer.activePrintJob ? printer.activePrintJob.owner : catalog.i18nc("@label", "Anonymous")
width: parent.width width: parent.width
// FIXED-LINE-HEIGHT:
height: 18 * screenScaleFactor // TODO: Theme!
} }
} }
@ -445,45 +431,19 @@ Item
} }
text: catalog.i18nc("@label:status", "Requires configuration changes") text: catalog.i18nc("@label:status", "Requires configuration changes")
visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible
// FIXED-LINE-HEIGHT:
height: 18 * screenScaleFactor // TODO: Theme!
} }
} }
Button Cura.SecondaryButton
{ {
id: detailsButton id: detailsButton
anchors anchors
{ {
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
right: parent.right right: parent.right
rightMargin: 18 * screenScaleFactor // TODO: Theme! rightMargin: UM.Theme.getSize("default_margin").width
} }
background: Rectangle text: catalog.i18nc("@action:button", "Details")
{
color: UM.Theme.getColor("monitor_secondary_button_shadow")
radius: 2 * screenScaleFactor // Todo: Theme!
Rectangle
{
anchors.fill: parent
anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme!
color: detailsButton.hovered ? UM.Theme.getColor("monitor_secondary_button_hover") : UM.Theme.getColor("monitor_secondary_button")
radius: 2 * screenScaleFactor // Todo: Theme!
}
}
contentItem: UM.Label
{
anchors.fill: parent
anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme!
color: UM.Theme.getColor("monitor_secondary_button_text")
font: UM.Theme.getFont("medium") // 14pt, regular
text: catalog.i18nc("@action:button", "Details");
horizontalAlignment: Text.AlignHCenter
height: 18 * screenScaleFactor // TODO: Theme!
}
implicitHeight: 32 * screenScaleFactor // TODO: Theme!
implicitWidth: 96 * screenScaleFactor // TODO: Theme!
visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible
onClicked: base.enabled ? overrideConfirmationDialog.open() : {} onClicked: base.enabled ? overrideConfirmationDialog.open() : {}
enabled: OutputDevice.supportsPrintJobActions enabled: OutputDevice.supportsPrintJobActions

View file

@ -3,7 +3,6 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 2.0 import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import UM 1.2 as UM import UM 1.2 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura

View file

@ -1142,6 +1142,7 @@
"label": "Wall Distribution Count", "label": "Wall Distribution Count",
"description": "The number of walls, counted from the center, over which the variation needs to be spread. Lower values mean that the outer walls don't change in width.", "description": "The number of walls, counted from the center, over which the variation needs to be spread. Lower values mean that the outer walls don't change in width.",
"type": "int", "type": "int",
"maximum_value": "999999",
"default_value": 1, "default_value": 1,
"minimum_value": "1", "minimum_value": "1",
"enabled": "beading_strategy_type == 'inward_distributed'" "enabled": "beading_strategy_type == 'inward_distributed'"
@ -1198,8 +1199,8 @@
}, },
"optimize_wall_printing_order": "optimize_wall_printing_order":
{ {
"label": "Order Inner Walls By Inset", "label": "Optimize Wall Printing Order",
"description": "Order inner wall printing by inset-index, instead of by (hole) region.", "description": "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type.",
"type": "bool", "type": "bool",
"default_value": false, "default_value": false,
"settable_per_mesh": true "settable_per_mesh": true
@ -1433,6 +1434,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "top_layers - 1", "maximum_value_warning": "top_layers - 1",
"type": "int", "type": "int",
"maximum_value": "999999",
"value": "0", "value": "0",
"limit_to_extruder": "roofing_extruder_nr", "limit_to_extruder": "roofing_extruder_nr",
"settable_per_mesh": true, "settable_per_mesh": true,
@ -1486,6 +1488,7 @@
"default_value": 8, "default_value": 8,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "100", "maximum_value_warning": "100",
"maximum_value": "999999",
"type": "int", "type": "int",
"minimum_value_warning": "2", "minimum_value_warning": "2",
"value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))", "value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))",
@ -1516,6 +1519,7 @@
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "2", "minimum_value_warning": "2",
"default_value": 6, "default_value": 6,
"maximum_value": "999999",
"type": "int", "type": "int",
"value": "999999 if infill_sparse_density == 100 else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))", "value": "999999 if infill_sparse_density == 100 else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))",
"limit_to_extruder": "top_bottom_extruder_nr", "limit_to_extruder": "top_bottom_extruder_nr",
@ -1527,6 +1531,7 @@
"description": "The number of initial bottom layers, from the build-plate upwards. When calculated by the bottom thickness, this value is rounded to a whole number.", "description": "The number of initial bottom layers, from the build-plate upwards. When calculated by the bottom thickness, this value is rounded to a whole number.",
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "2", "minimum_value_warning": "2",
"maximum_value": "999999",
"default_value": 6, "default_value": 6,
"type": "int", "type": "int",
"value": "bottom_layers", "value": "bottom_layers",
@ -2048,6 +2053,7 @@
"description": "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage.", "description": "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage.",
"default_value": 1, "default_value": 1,
"type": "int", "type": "int",
"maximum_value": "999999",
"minimum_value": "1", "minimum_value": "1",
"maximum_value_warning": "infill_line_distance / infill_line_width", "maximum_value_warning": "infill_line_distance / infill_line_width",
"enabled": "infill_sparse_density > 0 and infill_pattern != 'zigzag' and (gradual_infill_steps == 0 or not zig_zaggify_infill)", "enabled": "infill_sparse_density > 0 and infill_pattern != 'zigzag' and (gradual_infill_steps == 0 or not zig_zaggify_infill)",
@ -2233,6 +2239,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"type": "int", "type": "int",
"maximum_value": "999999",
"value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))", "value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))",
"limit_to_extruder": "infill_extruder_nr", "limit_to_extruder": "infill_extruder_nr",
"enabled": "infill_sparse_density > 0", "enabled": "infill_sparse_density > 0",
@ -3257,6 +3264,7 @@
"default_value": 2, "default_value": 2,
"resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))", "resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "999999",
"maximum_value_warning": "3.2 / resolveOrValue('layer_height')", "maximum_value_warning": "3.2 / resolveOrValue('layer_height')",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false

View file

@ -84,6 +84,8 @@
"meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 60" }, "meshfix_maximum_resolution": { "value": "(speed_wall_0 + speed_wall_x) / 60" },
"meshfix_maximum_deviation": { "value": "layer_height / 4" }, "meshfix_maximum_deviation": { "value": "layer_height / 4" },
"meshfix_maximum_travel_resolution": { "value": 0.5 }, "meshfix_maximum_travel_resolution": { "value": 0.5 },
"prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" } "prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" },
"retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" }
} }
} }

View file

@ -136,6 +136,7 @@
"retraction_hop_only_when_collides": { "value": "True" }, "retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" }, "retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" }, "retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" },
"skin_overlap": { "value": "10" }, "skin_overlap": { "value": "10" },
"speed_layer_0": { "value": "20" }, "speed_layer_0": { "value": "20" },
"speed_prime_tower": { "value": "speed_topbottom" }, "speed_prime_tower": { "value": "speed_topbottom" },

View file

@ -138,6 +138,7 @@
"retraction_hop_only_when_collides": { "value": "True" }, "retraction_hop_only_when_collides": { "value": "True" },
"retraction_min_travel": { "value": "5" }, "retraction_min_travel": { "value": "5" },
"retraction_prime_speed": { "value": "15" }, "retraction_prime_speed": { "value": "15" },
"retraction_speed": {"value": "45" },
"skin_overlap": { "value": "10" }, "skin_overlap": { "value": "10" },
"speed_layer_0": { "value": "20" }, "speed_layer_0": { "value": "20" },
"speed_prime_tower": { "value": "speed_topbottom" }, "speed_prime_tower": { "value": "speed_topbottom" },

View file

@ -207,6 +207,7 @@ Cura.ExpandablePopup
text: model.material_name text: model.material_name
elide: Text.ElideRight elide: Text.ElideRight
width: parent.width width: parent.width
wrapMode: Text.NoWrap
visible: !materialBrandNameLabel.visible && !truncated visible: !materialBrandNameLabel.visible && !truncated
} }
@ -217,6 +218,7 @@ Cura.ExpandablePopup
text: model.material_type text: model.material_type
elide: Text.ElideRight elide: Text.ElideRight
width: parent.width width: parent.width
wrapMode: Text.NoWrap
visible: !materialBrandNameLabel.visible && !materialNameLabel.visible visible: !materialBrandNameLabel.visible && !materialNameLabel.visible
} }
// Label that shows the name of the variant // Label that shows the name of the variant
@ -228,6 +230,7 @@ Cura.ExpandablePopup
text: model.variant text: model.variant
elide: Text.ElideRight elide: Text.ElideRight
wrapMode: Text.NoWrap
font: UM.Theme.getFont("default_bold") font: UM.Theme.getFont("default_bold")
Layout.preferredWidth: parent.width Layout.preferredWidth: parent.width
} }

View file

@ -8,7 +8,7 @@ import QtQuick.Window 2.1
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Menu Cura.Menu
{ {
id: base id: base

View file

@ -13,7 +13,7 @@ Cura.Menu
Cura.MenuItem { action: Cura.Actions.undo } Cura.MenuItem { action: Cura.Actions.undo }
Cura.MenuItem { action: Cura.Actions.redo } Cura.MenuItem { action: Cura.Actions.redo }
MenuSeparator { } Cura.MenuSeparator { }
Cura.MenuItem { action: Cura.Actions.selectAll } Cura.MenuItem { action: Cura.Actions.selectAll }
Cura.MenuItem { action: Cura.Actions.arrangeAll } Cura.MenuItem { action: Cura.Actions.arrangeAll }
Cura.MenuItem { action: Cura.Actions.multiplySelection } Cura.MenuItem { action: Cura.Actions.multiplySelection }
@ -21,7 +21,7 @@ Cura.Menu
Cura.MenuItem { action: Cura.Actions.deleteAll } Cura.MenuItem { action: Cura.Actions.deleteAll }
Cura.MenuItem { action: Cura.Actions.resetAllTranslation } Cura.MenuItem { action: Cura.Actions.resetAllTranslation }
Cura.MenuItem { action: Cura.Actions.resetAll } Cura.MenuItem { action: Cura.Actions.resetAll }
MenuSeparator { } Cura.MenuSeparator { }
Cura.MenuItem { action: Cura.Actions.groupObjects } Cura.MenuItem { action: Cura.Actions.groupObjects }
Cura.MenuItem { action: Cura.Actions.mergeObjects } Cura.MenuItem { action: Cura.Actions.mergeObjects }
Cura.MenuItem { action: Cura.Actions.unGroupObjects } Cura.MenuItem { action: Cura.Actions.unGroupObjects }

View file

@ -69,7 +69,7 @@ Cura.Menu
enabled: UM.WorkspaceFileHandler.enabled enabled: UM.WorkspaceFileHandler.enabled
} }
MenuSeparator { } Cura.MenuSeparator { }
Cura.MenuItem Cura.MenuItem
{ {
@ -91,7 +91,7 @@ Cura.Menu
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
} }
MenuSeparator { } Cura.MenuSeparator { }
Cura.MenuItem Cura.MenuItem
{ {
@ -99,7 +99,7 @@ Cura.Menu
action: Cura.Actions.reloadAll action: Cura.Actions.reloadAll
} }
MenuSeparator { } Cura.MenuSeparator { }
Cura.MenuItem { action: Cura.Actions.quit } Cura.MenuItem { action: Cura.Actions.quit }
} }

View file

@ -39,7 +39,7 @@ Cura.Menu
onAboutToHide: updateModels = false onAboutToHide: updateModels = false
} }
MenuSeparator Cura.MenuSeparator
{ {
visible: Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasMaterials visible: Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasMaterials
} }

View file

@ -2,16 +2,13 @@
//Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Item Item
{ {
id: base; id: base
UM.I18nCatalog { id: catalog; name: "cura"} UM.I18nCatalog { id: catalog; name: "cura"}
height: childrenRect.height + UM.Theme.getSize("thick_margin").height height: childrenRect.height + UM.Theme.getSize("thick_margin").height
@ -158,7 +155,7 @@ Item
} }
} }
Label UM.Label
{ {
id: statusLabel id: statusLabel
width: parent.width - 2 * UM.Theme.getSize("thick_margin").width width: parent.width - 2 * UM.Theme.getSize("thick_margin").width
@ -171,7 +168,7 @@ Item
text: statusText text: statusText
} }
Label UM.Label
{ {
id: percentageLabel id: percentageLabel
anchors.top: parent.top anchors.top: parent.top
@ -185,20 +182,20 @@ Item
UM.ProgressBar UM.ProgressBar
{ {
id: progressBar; id: progressBar
minimumValue: 0; from: 0
maximumValue: 100; to: 100
value: 0; value: 0
//Doing this in an explicit binding since the implicit binding breaks on occasion. //Doing this in an explicit binding since the implicit binding breaks on occasion.
Binding Binding
{ {
target: progressBar; target: progressBar
property: "value"; property: "value"
value: base.progress; value: base.progress
} }
visible: showProgress; visible: showProgress
indeterminate: indeterminate:
{ {
if(!printerConnected) if(!printerConnected)
@ -218,15 +215,15 @@ Item
return false; return false;
} }
} }
property string backgroundColor: UM.Theme.getColor("progressbar_background"); property string backgroundColor: UM.Theme.getColor("progressbar_background")
property string controlColor: base.statusColor; property string controlColor: base.statusColor
width: parent.width - 2 * UM.Theme.getSize("thick_margin").width; width: parent.width - 2 * UM.Theme.getSize("thick_margin").width
height: UM.Theme.getSize("progressbar").height; height: UM.Theme.getSize("progressbar").height
anchors.top: statusLabel.bottom; anchors.top: statusLabel.bottom
anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4); anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4)
anchors.left: parent.left; anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("thick_margin").width; anchors.leftMargin: UM.Theme.getSize("thick_margin").width
} }
Row Row

View file

@ -3,7 +3,6 @@
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 1.4 import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.5 as UM import UM 1.5 as UM

View file

@ -3,7 +3,6 @@
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 1.4 import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.5 as UM import UM 1.5 as UM

View file

@ -2,7 +2,6 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
import QtQuick.Controls 1.4
import UM 1.5 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura

View file

@ -2,7 +2,6 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 1.4
import UM 1.2 as UM import UM 1.2 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -13,8 +12,6 @@ Item
height: childrenRect.height + 2 * padding height: childrenRect.height + 2 * padding
property Action configureSettings
property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1
property real padding: UM.Theme.getSize("thick_margin").width property real padding: UM.Theme.getSize("thick_margin").width

View file

@ -3,7 +3,6 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import UM 1.2 as UM import UM 1.2 as UM

View file

@ -3,7 +3,6 @@
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 1.4 import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.3 import QtQuick.Layouts 1.3
import UM 1.2 as UM import UM 1.2 as UM

View file

@ -98,6 +98,7 @@ Item
Layout.preferredWidth: _buttonSize Layout.preferredWidth: _buttonSize
Layout.preferredHeight: _buttonSize Layout.preferredHeight: _buttonSize
iconSource: UM.Theme.getIcon("ChevronSingleUp") iconSource: UM.Theme.getIcon("ChevronSingleUp")
leftPadding: (Layout.preferredWidth - iconSize) / 2
onClicked: printerModel.moveHead(0, distancesRow.currentDistance, 0) onClicked: printerModel.moveHead(0, distancesRow.currentDistance, 0)
} }
@ -109,6 +110,7 @@ Item
Layout.preferredWidth: _buttonSize Layout.preferredWidth: _buttonSize
Layout.preferredHeight: _buttonSize Layout.preferredHeight: _buttonSize
iconSource: UM.Theme.getIcon("ChevronSingleLeft") iconSource: UM.Theme.getIcon("ChevronSingleLeft")
leftPadding: (Layout.preferredWidth - iconSize) / 2
onClicked: printerModel.moveHead(-distancesRow.currentDistance, 0, 0) onClicked: printerModel.moveHead(-distancesRow.currentDistance, 0, 0)
} }
@ -120,6 +122,7 @@ Item
Layout.preferredWidth: _buttonSize Layout.preferredWidth: _buttonSize
Layout.preferredHeight: _buttonSize Layout.preferredHeight: _buttonSize
iconSource: UM.Theme.getIcon("ChevronSingleRight") iconSource: UM.Theme.getIcon("ChevronSingleRight")
leftPadding: (Layout.preferredWidth - iconSize) / 2
onClicked: printerModel.moveHead(distancesRow.currentDistance, 0, 0) onClicked: printerModel.moveHead(distancesRow.currentDistance, 0, 0)
} }
@ -131,6 +134,7 @@ Item
Layout.preferredWidth: _buttonSize Layout.preferredWidth: _buttonSize
Layout.preferredHeight: _buttonSize Layout.preferredHeight: _buttonSize
iconSource: UM.Theme.getIcon("ChevronSingleDown") iconSource: UM.Theme.getIcon("ChevronSingleDown")
leftPadding: (Layout.preferredWidth - iconSize) / 2
onClicked: printerModel.moveHead(0, -distancesRow.currentDistance, 0) onClicked: printerModel.moveHead(0, -distancesRow.currentDistance, 0)
} }
@ -142,6 +146,7 @@ Item
Layout.preferredWidth: _buttonSize Layout.preferredWidth: _buttonSize
Layout.preferredHeight: _buttonSize Layout.preferredHeight: _buttonSize
iconSource: UM.Theme.getIcon("House") iconSource: UM.Theme.getIcon("House")
leftPadding: (Layout.preferredWidth - iconSize) / 2
onClicked: printerModel.homeHead() onClicked: printerModel.homeHead()
} }
@ -166,6 +171,7 @@ Item
iconSource: UM.Theme.getIcon("ChevronSingleUp") iconSource: UM.Theme.getIcon("ChevronSingleUp")
width: height width: height
height: _buttonSize height: _buttonSize
leftPadding: (width - iconSize) / 2
onClicked: printerModel.moveHead(0, 0, distancesRow.currentDistance) onClicked: printerModel.moveHead(0, 0, distancesRow.currentDistance)
@ -176,6 +182,7 @@ Item
iconSource: UM.Theme.getIcon("House") iconSource: UM.Theme.getIcon("House")
width: height width: height
height: _buttonSize height: _buttonSize
leftPadding: (width - iconSize) / 2
onClicked: printerModel.homeBed() onClicked: printerModel.homeBed()
} }
@ -185,6 +192,7 @@ Item
iconSource: UM.Theme.getIcon("ChevronSingleDown") iconSource: UM.Theme.getIcon("ChevronSingleDown")
width: height width: height
height: _buttonSize height: _buttonSize
leftPadding: (width - iconSize) / 2
onClicked: printerModel.moveHead(0, 0, -distancesRow.currentDistance) onClicked: printerModel.moveHead(0, 0, -distancesRow.currentDistance)
} }
@ -218,15 +226,15 @@ Item
Repeater Repeater
{ {
model: distancesModel model: distancesModel
delegate: Button delegate: Cura.SecondaryButton
{ {
height: UM.Theme.getSize("setting_control").height height: UM.Theme.getSize("setting_control").height
width: height + UM.Theme.getSize("default_margin").width
text: model.label text: model.label
ButtonGroup.group: distanceGroup ButtonGroup.group: distanceGroup
checkable: true color: distancesRow.currentDistance == model.value ? UM.Theme.getColor("primary_button") : UM.Theme.getColor("secondary_button")
checked: distancesRow.currentDistance == model.value textColor: distancesRow.currentDistance == model.value ? UM.Theme.getColor("primary_button_text"): UM.Theme.getColor("secondary_button_text")
hoverColor: distancesRow.currentDistance == model.value ? UM.Theme.getColor("primary_button_hover"): UM.Theme.getColor("secondary_button_hover")
onClicked: distancesRow.currentDistance = model.value onClicked: distancesRow.currentDistance = model.value
} }
} }

View file

@ -2,18 +2,16 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Item Item
{ {
property string label: "" property string label: ""
property string value: "" property string value: ""
height: childrenRect.height; height: childrenRect.height
property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
@ -24,22 +22,20 @@ Item
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.leftMargin: UM.Theme.getSize("default_margin").width
Label UM.Label
{ {
width: Math.floor(parent.width * 0.4) width: Math.floor(parent.width * 0.4)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: label text: label
color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("default")
elide: Text.ElideRight elide: Text.ElideRight
} }
Label UM.Label
{ {
width: Math.floor(parent.width * 0.6) width: Math.floor(parent.width * 0.6)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: value text: value
color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("default")
elide: Text.ElideRight elide: Text.ElideRight
} }
} }

View file

@ -2,11 +2,8 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.3
import UM 1.2 as UM import UM 1.5 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Item Item
@ -21,14 +18,12 @@ Item
width: base.width width: base.width
height: UM.Theme.getSize("section").height height: UM.Theme.getSize("section").height
Label UM.Label
{ {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.leftMargin: UM.Theme.getSize("default_margin").width
text: label text: label
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("setting_category_text")
} }
} }
} }

View file

@ -1,7 +1,6 @@
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import UM 1.2 as UM import UM 1.2 as UM

View file

@ -27,6 +27,7 @@ Item
property bool allowSelection: true //Whether to allow the user to select items. property bool allowSelection: true //Whether to allow the user to select items.
property string sectionRole: "" property string sectionRole: ""
property alias flickableDirection: tableView.flickableDirection
Row Row
{ {
id: headerBar id: headerBar
@ -128,6 +129,7 @@ Item
} }
flickableDirection: Flickable.AutoFlickIfNeeded flickableDirection: Flickable.AutoFlickIfNeeded
contentWidth: -1 // AUto calculate the contendWidth
clip: true clip: true
ScrollBar.vertical: UM.ScrollBar {} ScrollBar.vertical: UM.ScrollBar {}
columnWidthProvider: function(column) columnWidthProvider: function(column)

View file

@ -2,8 +2,6 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import UM 1.4 as UM import UM 1.4 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura

View file

@ -12,9 +12,11 @@ import Cura 1.0 as Cura
UM.Menu UM.Menu
{ {
id: menu id: menu
topPadding: UM.Theme.getSize("narrow_margin").height
bottomPadding: UM.Theme.getSize("narrow_margin").height
padding: 0 padding: 0
width: UM.Theme.getSize("context_menu").width implicitWidth: UM.Theme.getSize("menu").width
delegate: Cura.MenuItem {} delegate: Cura.MenuItem {}
background: Rectangle background: Rectangle

View file

@ -12,6 +12,9 @@ import UM 1.5 as UM
UM.MenuItem UM.MenuItem
{ {
id: menuItem id: menuItem
implicitHeight: UM.Theme.getSize("menu").height + UM.Theme.getSize("narrow_margin").height
implicitWidth: UM.Theme.getSize("menu").width
opacity: enabled ? 1.0 : 0.5 opacity: enabled ? 1.0 : 0.5
arrow: UM.RecolorImage arrow: UM.RecolorImage
@ -46,6 +49,6 @@ UM.MenuItem
width: menuItem.width - 2 * UM.Theme.getSize("default_lining").width width: menuItem.width - 2 * UM.Theme.getSize("default_lining").width
height: menuItem.height - 2 * UM.Theme.getSize("default_lining").height height: menuItem.height - 2 * UM.Theme.getSize("default_lining").height
color: menuItem.highlighted ? UM.Theme.getColor("setting_control_highlight") : "transparent" color: menuItem.highlighted ? UM.Theme.getColor("secondary"): UM.Theme.getColor("setting_control_highlight")
} }
} }

View file

@ -11,8 +11,10 @@ import UM 1.1 as UM
// //
MenuSeparator MenuSeparator
{ {
padding: 0 leftPadding: UM.Theme.getSize("default_margin").width
contentItem: Rectangle { rightPadding: UM.Theme.getSize("default_margin").width
contentItem: Rectangle
{
implicitHeight: UM.Theme.getSize("default_lining").height implicitHeight: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("setting_control_border") color: UM.Theme.getColor("setting_control_border")
} }

View file

@ -17,6 +17,8 @@ cool_min_layer_time = 3
cool_min_layer_time_fan_speed_max = 15 cool_min_layer_time_fan_speed_max = 15
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 45) speed_layer_0 = =round(speed_print * 30 / 45)
speed_print = 45 speed_print = 45
speed_travel = 150 speed_travel = 150
@ -26,5 +28,4 @@ wall_thickness = 0.7
speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_wall_0 = =math.ceil(speed_print * 30 / 45)
speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_topbottom = =math.ceil(speed_print * 30 / 45)
speed_wall_x = =math.ceil(speed_print * 40 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45)
speed_infill = =math.ceil(speed_print * 45 / 45) speed_infill = =math.ceil(speed_print * 45 / 45)
retraction_combing_max_distance = 50

View file

@ -17,11 +17,12 @@ cool_min_layer_time = 2
cool_min_layer_time_fan_speed_max = 15 cool_min_layer_time_fan_speed_max = 15
cool_min_speed = 15 cool_min_speed = 15
infill_sparse_density = 20 infill_sparse_density = 20
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 45) speed_layer_0 = =round(speed_print * 30 / 45)
speed_print = 45 speed_print = 45
speed_wall = =math.ceil(speed_print * 30 / 45) speed_wall = =math.ceil(speed_print * 30 / 45)
top_bottom_thickness = 0.72 top_bottom_thickness = 0.72
wall_thickness = 1.05 wall_thickness = 1.05
speed_topbottom = =math.ceil(speed_print * 15 / 45) speed_topbottom = =math.ceil(speed_print * 15 / 45)
speed_infill = =math.ceil(speed_print * 45 / 45) speed_infill = =math.ceil(speed_print * 45 / 45)
retraction_combing_max_distance = 50

View file

@ -17,9 +17,10 @@ cool_min_layer_time = 3
cool_min_layer_time_fan_speed_max = 15 cool_min_layer_time_fan_speed_max = 15
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 45) speed_layer_0 = =round(speed_print * 30 / 45)
speed_print = 45 speed_print = 45
speed_wall = =math.ceil(speed_print * 30 / 45) speed_wall = =math.ceil(speed_print * 30 / 45)
top_bottom_thickness = 0.8 top_bottom_thickness = 0.8
wall_thickness = 1.05 wall_thickness = 1.05
retraction_combing_max_distance = 50

View file

@ -17,8 +17,9 @@ cool_min_layer_time = 5
cool_min_layer_time_fan_speed_max = 20 cool_min_layer_time_fan_speed_max = 20
cool_min_speed = 8 cool_min_speed = 8
infill_sparse_density = 20 infill_sparse_density = 20
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 40) speed_layer_0 = =round(speed_print * 30 / 40)
speed_print = 40 speed_print = 40
top_bottom_thickness = 1.2 top_bottom_thickness = 1.2
wall_thickness = 1.59 wall_thickness = 1.59
retraction_combing_max_distance = 50

View file

@ -26,6 +26,8 @@ raft_interface_line_spacing = 1
raft_interface_line_width = 0.8 raft_interface_line_width = 0.8
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.38 raft_surface_line_width = 0.38
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 15 / 25) speed_layer_0 = =math.ceil(speed_print * 15 / 25)
speed_print = 25 speed_print = 25
speed_topbottom = =math.ceil(speed_print * 20 / 25) speed_topbottom = =math.ceil(speed_print * 20 / 25)
@ -37,5 +39,4 @@ support_infill_rate = =0 if support_enable and support_structure == 'tree' else
support_pattern = lines support_pattern = lines
support_z_distance = 0.26 support_z_distance = 0.26
top_bottom_thickness = 1.5 top_bottom_thickness = 1.5
wall_thickness = 1.14 wall_thickness = 1.14
retraction_combing_max_distance = 50

View file

@ -26,6 +26,8 @@ raft_interface_line_spacing = 1
raft_interface_line_width = 0.8 raft_interface_line_width = 0.8
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.38 raft_surface_line_width = 0.38
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 15 / 35) speed_layer_0 = =math.ceil(speed_print * 15 / 35)
speed_print = 35 speed_print = 35
speed_topbottom = =math.ceil(speed_print * 20 / 35) speed_topbottom = =math.ceil(speed_print * 20 / 35)
@ -37,5 +39,4 @@ support_infill_rate = =0 if support_enable and support_structure == 'tree' else
support_pattern = lines support_pattern = lines
support_z_distance = 0.26 support_z_distance = 0.26
top_bottom_thickness = 1.5 top_bottom_thickness = 1.5
wall_thickness = 1.14 wall_thickness = 1.14
retraction_combing_max_distance = 50

View file

@ -27,6 +27,8 @@ raft_interface_line_width = 1.2
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.57 raft_surface_line_width = 0.57
raft_surface_thickness = 0.2 raft_surface_thickness = 0.2
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 50) speed_layer_0 = =round(speed_print * 30 / 50)
speed_print = 25 speed_print = 25
speed_topbottom = =math.ceil(speed_print * 20 / 25) speed_topbottom = =math.ceil(speed_print * 20 / 25)
@ -41,5 +43,4 @@ support_pattern = lines
support_xy_distance = 0.6 support_xy_distance = 0.6
support_z_distance = 0.22 support_z_distance = 0.22
top_bottom_thickness = 0.75 top_bottom_thickness = 0.75
wall_thickness = 1.14 wall_thickness = 1.14
retraction_combing_max_distance = 50

View file

@ -27,6 +27,8 @@ raft_interface_line_width = 1.2
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.57 raft_surface_line_width = 0.57
raft_surface_thickness = 0.2 raft_surface_thickness = 0.2
retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 30 / 35) speed_layer_0 = =math.ceil(speed_print * 30 / 35)
speed_print = 35 speed_print = 35
speed_topbottom = =math.ceil(speed_print * 20 / 35) speed_topbottom = =math.ceil(speed_print * 20 / 35)
@ -41,5 +43,4 @@ support_pattern = lines
support_xy_distance = 0.6 support_xy_distance = 0.6
support_z_distance = 0.22 support_z_distance = 0.22
top_bottom_thickness = 0.75 top_bottom_thickness = 0.75
wall_thickness = 1.14 wall_thickness = 1.14
retraction_combing_max_distance = 50

View file

@ -26,6 +26,7 @@ raft_interface_line_width = 0.8
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.5 raft_surface_line_width = 0.5
raft_surface_thickness = 0.15 raft_surface_thickness = 0.15
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 30 / 45) speed_layer_0 = =math.ceil(speed_print * 30 / 45)
speed_print = 45 speed_print = 45
speed_topbottom = =math.ceil(speed_print * 20 / 45) speed_topbottom = =math.ceil(speed_print * 20 / 45)

View file

@ -26,6 +26,7 @@ raft_interface_line_width = 0.8
raft_margin = 15 raft_margin = 15
raft_surface_line_width = 0.5 raft_surface_line_width = 0.5
raft_surface_thickness = 0.15 raft_surface_thickness = 0.15
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 30 / 45) speed_layer_0 = =math.ceil(speed_print * 30 / 45)
speed_print = 45 speed_print = 45
speed_travel = 150 speed_travel = 150

View file

@ -27,6 +27,7 @@ raft_margin = 15
raft_surface_line_width = 0.6 raft_surface_line_width = 0.6
raft_surface_thickness = 0.15 raft_surface_thickness = 0.15
retraction_hop_enabled = 0.2 retraction_hop_enabled = 0.2
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 30 / 55) speed_layer_0 = =math.ceil(speed_print * 30 / 55)
speed_print = 55 speed_print = 55
speed_support = 40 speed_support = 40

View file

@ -27,6 +27,7 @@ raft_margin = 15
raft_surface_line_width = 0.6 raft_surface_line_width = 0.6
raft_surface_thickness = 0.15 raft_surface_thickness = 0.15
retraction_hop_enabled = 0.2 retraction_hop_enabled = 0.2
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 30 / 55) speed_layer_0 = =math.ceil(speed_print * 30 / 55)
speed_print = 55 speed_print = 55
speed_support = 40 speed_support = 40

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 60) speed_layer_0 = =round(speed_print * 30 / 60)
speed_print = 60 speed_print = 60
speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60)

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 60) speed_layer_0 = =round(speed_print * 30 / 60)
speed_print = 60 speed_print = 60
speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60)

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 50) speed_layer_0 = =round(speed_print * 30 / 50)
speed_print = 50 speed_print = 50
speed_topbottom = =math.ceil(speed_print * 20 / 50) speed_topbottom = =math.ceil(speed_print * 20 / 50)

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 50) speed_layer_0 = =round(speed_print * 30 / 50)
speed_print = 50 speed_print = 50
speed_topbottom = =math.ceil(speed_print * 20 / 50) speed_topbottom = =math.ceil(speed_print * 20 / 50)

View file

@ -15,6 +15,7 @@ variant = 0.6 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 55) speed_layer_0 = =round(speed_print * 30 / 55)
speed_print = 55 speed_print = 55
speed_topbottom = =math.ceil(speed_print * 20 / 55) speed_topbottom = =math.ceil(speed_print * 20 / 55)

View file

@ -45,7 +45,6 @@ retraction_hop = 0.15
retraction_hop_enabled = True retraction_hop_enabled = True
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.5 retraction_min_travel = 0.5
retraction_prime_speed = 15
skin_overlap = 10 skin_overlap = 10
speed_layer_0 = =speed_print speed_layer_0 = =speed_print
speed_prime_tower = =speed_topbottom speed_prime_tower = =speed_topbottom

View file

@ -45,7 +45,6 @@ retraction_hop = 0.15
retraction_hop_enabled = True retraction_hop_enabled = True
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.5 retraction_min_travel = 0.5
retraction_prime_speed = 15
skin_overlap = 10 skin_overlap = 10
speed_layer_0 = =speed_print speed_layer_0 = =speed_print
speed_prime_tower = =speed_topbottom speed_prime_tower = =speed_topbottom

View file

@ -44,7 +44,6 @@ retraction_extrusion_window = 1
retraction_hop = 0.15 retraction_hop = 0.15
retraction_hop_enabled = True retraction_hop_enabled = True
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = 15
skin_overlap = 10 skin_overlap = 10
speed_layer_0 = =speed_print speed_layer_0 = =speed_print
speed_prime_tower = =speed_topbottom speed_prime_tower = =speed_topbottom

View file

@ -44,7 +44,6 @@ retraction_extrusion_window = 1
retraction_hop = 0.15 retraction_hop = 0.15
retraction_hop_enabled = True retraction_hop_enabled = True
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = 15
skin_overlap = 10 skin_overlap = 10
speed_layer_0 = =speed_print speed_layer_0 = =speed_print
speed_prime_tower = =speed_topbottom speed_prime_tower = =speed_topbottom

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 50) speed_layer_0 = =round(speed_print * 30 / 50)
speed_print = 50 speed_print = 50
speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_topbottom = =math.ceil(speed_print * 30 / 50)

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 40) speed_layer_0 = =round(speed_print * 30 / 40)
speed_print = 40 speed_print = 40
speed_topbottom = =math.ceil(speed_print * 30 / 40) speed_topbottom = =math.ceil(speed_print * 30 / 40)

View file

@ -15,6 +15,7 @@ variant = 0.4 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 40) speed_layer_0 = =round(speed_print * 30 / 40)
speed_print = 40 speed_print = 40
speed_topbottom = =math.ceil(speed_print * 20 / 40) speed_topbottom = =math.ceil(speed_print * 20 / 40)

View file

@ -15,6 +15,7 @@ variant = 0.6 mm
cool_min_layer_time = 5 cool_min_layer_time = 5
cool_min_speed = 10 cool_min_speed = 10
infill_sparse_density = 20 infill_sparse_density = 20
retraction_prime_speed = =retraction_speed
speed_layer_0 = =round(speed_print * 30 / 50) speed_layer_0 = =round(speed_print * 30 / 50)
speed_print = 50 speed_print = 50
speed_topbottom = =math.ceil(speed_print * 20 / 50) speed_topbottom = =math.ceil(speed_print * 20 / 50)

View file

@ -15,6 +15,5 @@ variant = AA 0.25
cool_fan_speed = 40 cool_fan_speed = 40
infill_overlap = =0 if infill_sparse_density > 80 else 15 infill_overlap = =0 if infill_sparse_density > 80 else 15
material_final_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 5
retraction_prime_speed = 25
speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55)
wall_thickness = 0.92 wall_thickness = 0.92

View file

@ -34,7 +34,6 @@ retraction_count_max = 80
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30 skin_overlap = 30
speed_layer_0 = =math.ceil(speed_print * 25 / 50) speed_layer_0 = =math.ceil(speed_print * 25 / 50)
speed_print = 50 speed_print = 50

View file

@ -37,7 +37,7 @@ retraction_extrusion_window = 6.5
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 13 retraction_prime_speed = 15
speed_layer_0 = =math.ceil(speed_print * 15 / 25) speed_layer_0 = =math.ceil(speed_print * 15 / 25)
speed_print = 25 speed_print = 25
speed_travel_layer_0 = 50 speed_travel_layer_0 = 50

View file

@ -32,6 +32,7 @@ retraction_extrusion_window = 1
retraction_hop = 0.2 retraction_hop = 0.2
retraction_hop_enabled = False retraction_hop_enabled = False
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_layer_0 = =math.ceil(speed_print * 20 / 50)
speed_print = 50 speed_print = 50

View file

@ -32,6 +32,7 @@ retraction_extrusion_window = 1
retraction_hop = 0.2 retraction_hop = 0.2
retraction_hop_enabled = False retraction_hop_enabled = False
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = =math.ceil(speed_print * 20 / 45) speed_layer_0 = =math.ceil(speed_print * 20 / 45)
speed_print = 45 speed_print = 45

View file

@ -34,6 +34,7 @@ retraction_extrusion_window = 1
retraction_hop = 0.2 retraction_hop = 0.2
retraction_hop_enabled = False retraction_hop_enabled = False
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = =math.ceil(speed_print * 20 / 40) speed_layer_0 = =math.ceil(speed_print * 20 / 40)
speed_print = 40 speed_print = 40

View file

@ -34,6 +34,7 @@ retraction_extrusion_window = 1
retraction_hop = 0.2 retraction_hop = 0.2
retraction_hop_enabled = False retraction_hop_enabled = False
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = =math.ceil(speed_print * 20 / 40) speed_layer_0 = =math.ceil(speed_print * 20 / 40)
speed_print = 40 speed_print = 40

View file

@ -16,6 +16,7 @@ material_print_temperature = =default_material_print_temperature + 10
material_initial_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10 material_final_print_temperature = =material_print_temperature - 10
retraction_combing_max_distance = 50 retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_print = 60 speed_print = 60
speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60)

View file

@ -17,6 +17,7 @@ material_print_temperature = =default_material_print_temperature + 5
material_initial_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10 material_final_print_temperature = =material_print_temperature - 10
retraction_combing_max_distance = 50 retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_print = 60 speed_print = 60
speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_layer_0 = =math.ceil(speed_print * 20 / 60)
speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60)

View file

@ -19,6 +19,7 @@ material_print_temperature = =default_material_print_temperature - 5
material_initial_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10 material_final_print_temperature = =material_print_temperature - 10
retraction_combing_max_distance = 50 retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_print = 50 speed_print = 50
speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_layer_0 = =math.ceil(speed_print * 20 / 50)
speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_topbottom = =math.ceil(speed_print * 30 / 50)

View file

@ -17,6 +17,7 @@ machine_nozzle_heat_up_speed = 1.5
material_initial_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10 material_final_print_temperature = =material_print_temperature - 10
retraction_combing_max_distance = 50 retraction_combing_max_distance = 50
retraction_prime_speed = =retraction_speed
speed_print = 55 speed_print = 55
speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_layer_0 = =math.ceil(speed_print * 20 / 55)
speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55)

View file

@ -28,6 +28,7 @@ raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
raft_jerk = =jerk_layer_0 raft_jerk = =jerk_layer_0
raft_margin = 10 raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_prime_speed = =retraction_speed
skin_overlap = 50 skin_overlap = 50
speed_layer_0 = 10 speed_layer_0 = 10
switch_extruder_prime_speed = 30 switch_extruder_prime_speed = 30

View file

@ -28,6 +28,7 @@ raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
raft_jerk = =jerk_layer_0 raft_jerk = =jerk_layer_0
raft_margin = 10 raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_prime_speed = =retraction_speed
skin_overlap = 50 skin_overlap = 50
speed_layer_0 = 10 speed_layer_0 = 10
switch_extruder_prime_speed = 30 switch_extruder_prime_speed = 30

View file

@ -27,6 +27,7 @@ raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
raft_jerk = =jerk_layer_0 raft_jerk = =jerk_layer_0
raft_margin = 10 raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_prime_speed = =retraction_speed
skin_overlap = 50 skin_overlap = 50
speed_layer_0 = 10 speed_layer_0 = 10
switch_extruder_prime_speed = 30 switch_extruder_prime_speed = 30

View file

@ -27,6 +27,7 @@ raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
raft_jerk = =jerk_layer_0 raft_jerk = =jerk_layer_0
raft_margin = 10 raft_margin = 10
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
retraction_prime_speed = =retraction_speed
skin_overlap = 50 skin_overlap = 50
speed_layer_0 = 10 speed_layer_0 = 10
switch_extruder_prime_speed = 30 switch_extruder_prime_speed = 30

View file

@ -43,7 +43,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30 skin_overlap = 30
speed_layer_0 = =math.ceil(speed_print * 25 / 50) speed_layer_0 = =math.ceil(speed_print * 25 / 50)
speed_print = 50 speed_print = 50

View file

@ -41,7 +41,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30 skin_overlap = 30
speed_layer_0 = =math.ceil(speed_print * 25 / 50) speed_layer_0 = =math.ceil(speed_print * 25 / 50)
speed_print = 50 speed_print = 50

View file

@ -43,7 +43,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30 skin_overlap = 30
speed_layer_0 = =math.ceil(speed_print * 25 / 50) speed_layer_0 = =math.ceil(speed_print * 25 / 50)
speed_print = 50 speed_print = 50

View file

@ -41,7 +41,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 15
skin_overlap = 30 skin_overlap = 30
speed_layer_0 = =math.ceil(speed_print * 25 / 50) speed_layer_0 = =math.ceil(speed_print * 25 / 50)
speed_print = 50 speed_print = 50

View file

@ -19,6 +19,7 @@ machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = 10 speed_layer_0 = 10
speed_topbottom = =math.ceil(speed_print * 40 / 70) speed_topbottom = =math.ceil(speed_print * 40 / 70)

View file

@ -18,6 +18,7 @@ machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
speed_print = 70 speed_print = 70
speed_layer_0 = 10 speed_layer_0 = 10
speed_topbottom = =math.ceil(speed_print * 35 / 70) speed_topbottom = =math.ceil(speed_print * 35 / 70)

View file

@ -20,6 +20,7 @@ machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
skin_overlap = 10 skin_overlap = 10
speed_print = 50 speed_print = 50
speed_layer_0 = 10 speed_layer_0 = 10

View file

@ -19,6 +19,7 @@ machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
skin_overlap = 10 skin_overlap = 10
speed_layer_0 = 10 speed_layer_0 = 10
top_bottom_thickness = 1 top_bottom_thickness = 1

View file

@ -34,6 +34,7 @@ machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
skin_edge_support_thickness = =0.9 if infill_sparse_density < 30 else 0 skin_edge_support_thickness = =0.9 if infill_sparse_density < 30 else 0
skin_overlap = 20 skin_overlap = 20

View file

@ -42,7 +42,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 18
speed_layer_0 = =math.ceil(speed_print * 15 / 25) speed_layer_0 = =math.ceil(speed_print * 15 / 25)
speed_print = 25 speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_topbottom = =math.ceil(speed_print * 25 / 25)

View file

@ -41,7 +41,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 18
speed_layer_0 = =math.ceil(speed_print * 15 / 25) speed_layer_0 = =math.ceil(speed_print * 15 / 25)
speed_print = 25 speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_topbottom = =math.ceil(speed_print * 25 / 25)

View file

@ -43,7 +43,6 @@ retraction_extrusion_window = 1
retraction_hop = 2 retraction_hop = 2
retraction_hop_only_when_collides = True retraction_hop_only_when_collides = True
retraction_min_travel = 0.8 retraction_min_travel = 0.8
retraction_prime_speed = 18
speed_layer_0 = =math.ceil(speed_print * 15 / 25) speed_layer_0 = =math.ceil(speed_print * 15 / 25)
speed_print = 25 speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25) speed_topbottom = =math.ceil(speed_print * 25 / 25)

View file

@ -23,6 +23,7 @@ machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature -10
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20
speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_layer_0 = =math.ceil(speed_print * 20 / 50)
speed_print = 50 speed_print = 50

View file

@ -20,6 +20,7 @@ machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature -10
material_standby_temperature = 100 material_standby_temperature = 100
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 20 / 45) speed_layer_0 = =math.ceil(speed_print * 20 / 45)
speed_print = 45 speed_print = 45
speed_topbottom = =math.ceil(speed_print * 35 / 45) speed_topbottom = =math.ceil(speed_print * 35 / 45)

Some files were not shown because too many files have changed in this diff Show more