Merge branch 'Ultimaker:main' into main

This commit is contained in:
Mehmet Sutaş 2022-10-14 12:58:38 +03:00 committed by GitHub
commit d524a2f491
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
108 changed files with 970 additions and 358 deletions

View File

@ -44,16 +44,24 @@ on:
- '[1-9].[0-9]' - '[1-9].[0-9]'
- '[1-9].[0-9][0-9]' - '[1-9].[0-9][0-9]'
tags: tags:
- '[1-9].[0-9].[0-9]+' - '[1-9].[0-9].[0-9]*'
- '[1-9].[0-9][0-9].[0-9]+' - '[1-9].[0-9].[0-9]'
- '[1-9].[0-9][0-9].[0-9]*'
permissions: {}
jobs: jobs:
conan-recipe-version: conan-recipe-version:
permissions:
contents: read
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
with: with:
project_name: cura project_name: cura
conan-package-export: conan-package-export:
permissions:
contents: read
needs: [ conan-recipe-version ] needs: [ conan-recipe-version ]
uses: ultimaker/cura/.github/workflows/conan-recipe-export.yml@main uses: ultimaker/cura/.github/workflows/conan-recipe-export.yml@main
with: with:
@ -65,6 +73,9 @@ jobs:
secrets: inherit secrets: inherit
conan-package-create-linux: conan-package-create-linux:
permissions:
contents: read
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux) }} if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux) }}
needs: [ conan-recipe-version, conan-package-export ] needs: [ conan-recipe-version, conan-package-export ]

View File

@ -102,6 +102,7 @@ jobs:
is_release_branch = True is_release_branch = True
channel = "_" channel = "_"
user = "_" user = "_"
actual_version = f"{branch_version}"
else: else:
try: try:
branch_version = tools.Version(repo.active_branch.name) branch_version = tools.Version(repo.active_branch.name)
@ -118,35 +119,27 @@ jobs:
if "pull_request" in event_name: if "pull_request" in event_name:
channel = f"pr_{issue_number}" channel = f"pr_{issue_number}"
# %% Get the actual version
latest_branch_version = tools.Version("0.0.0")
latest_branch_tag = None
for tag in repo.git.tag(merged = True).splitlines():
if str(tag).startswith("firmware") or str(tag).startswith("master"):
continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
try:
version = tools.Version(tag)
except ConanException:
continue
if version > latest_branch_version:
latest_branch_version = version
latest_branch_tag = repo.tag(tag)
if latest_branch_tag:
# %% Get the actual version # %% Get the actual version
no_commits = 0 latest_branch_version = tools.Version("0.0.0")
for commit in repo.iter_commits("HEAD"): latest_branch_tag = None
if commit == latest_branch_tag.commit: for tag in repo.git.tag(merged = True).splitlines():
break if str(tag).startswith("firmware") or str(tag).startswith("master"):
no_commits += 1 continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
try:
version = tools.Version(tag)
except ConanException:
continue
if version > latest_branch_version:
latest_branch_version = version
latest_branch_tag = repo.tag(tag)
if no_commits == 0: if latest_branch_tag:
# This is a release # %% Get the actual version
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" no_commits = 0
if channel == "stable": for commit in repo.iter_commits("HEAD"):
user = "_" if commit == latest_branch_tag.commit:
channel = "_" break
else: no_commits += 1
latest_branch_version_prerelease = latest_branch_version.prerelease latest_branch_version_prerelease = latest_branch_version.prerelease
if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease:
# The prerealese did not contain a version number, default it to 1 # The prerealese did not contain a version number, default it to 1
@ -159,20 +152,29 @@ jobs:
channel_metadata = f"{no_commits}" channel_metadata = f"{no_commits}"
else: else:
channel_metadata = f"{channel}_{no_commits}" channel_metadata = f"{channel}_{no_commits}"
if latest_branch_version.prerelease == "": if is_release_branch:
if is_release_branch: if latest_branch_version.prerelease == "":
# An actual full release has been created, we are working on patch
bump_up_patch = int(latest_branch_version.patch) + 1 bump_up_patch = int(latest_branch_version.patch) + 1
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-alpha+{buildmetadata}{channel_metadata}" actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-beta.1+{buildmetadata}{channel_metadata}"
else: else:
bump_up_minor = int(latest_branch_version.minor) + 1 # An beta release has been created we are working toward a next beta or full release
reset_patch = 0 bump_up_release_tag = int(latest_branch_version.prerelease.split('.')[1]) + 1
actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.split('.')[0]}.{bump_up_release_tag}+{buildmetadata}{channel_metadata}"
else: else:
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" bump_up_minor = int(latest_branch_version.minor) + 1
else: reset_patch = 0
# FIXME: for external PR's actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}"
actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" else:
# FIXME: for external PR's
actual_version = f"5.3.0-alpha+{buildmetadata}pr_{issue_number}"
if is_tag and "${{ github.ref_name }}" == "5.2.0-beta":
actual_version = "5.2.0-beta"
is_release_branch = True
user = "_"
channel = "_"
# %% print to output # %% print to output
cmd_name = ["echo", f"::set-output name=name::{project_name}"] cmd_name = ["echo", f"::set-output name=name::{project_name}"]
subprocess.call(cmd_name) subprocess.call(cmd_name)
@ -194,7 +196,7 @@ jobs:
print(f"version = {actual_version}") print(f"version = {actual_version}")
print(f"user = {user}") print(f"user = {user}")
print(f"channel = {channel}") print(f"channel = {channel}")
print(f"recipe_id_full = {project_name}/{actual_version}@{user}/{channel}") print(f"= {project_name}/{actual_version}@{user}/{channel}")
print(f"recipe_id_latest = {project_name}/latest@{user}/{channel}") print(f"recipe_id_latest = {project_name}/latest@{user}/{channel}")
print(f"semver_full = {actual_version}") print(f"semver_full = {actual_version}")
print(f"is_release_branch = {str(is_release_branch).lower()}") print(f"is_release_branch = {str(is_release_branch).lower()}")

View File

@ -1,4 +1,5 @@
name: Cura Installer name: Cura Installer
run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }}
on: on:
workflow_dispatch: workflow_dispatch:
@ -28,7 +29,7 @@ on:
installer: installer:
description: 'Create the installer' description: 'Create the installer'
required: true required: true
default: false default: true
type: boolean type: boolean
# Run the nightly at 3:25 UTC on working days # Run the nightly at 3:25 UTC on working days
@ -52,6 +53,9 @@ env:
MACOS_CERT_USER: ${{ secrets.MACOS_CERT_USER }} MACOS_CERT_USER: ${{ secrets.MACOS_CERT_USER }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
MACOS_CERT_PASSPHRASE: ${{ secrets.MACOS_CERT_PASSPHRASE }} MACOS_CERT_PASSPHRASE: ${{ secrets.MACOS_CERT_PASSPHRASE }}
CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }}
ENTERPRISE: ${{ inputs.enterprise }}
STAGING: ${{ inputs.staging }}
jobs: jobs:
cura-installer-create: cura-installer-create:
@ -156,8 +160,13 @@ jobs:
if: ${{ inputs.conan_config_branch == '' }} if: ${{ inputs.conan_config_branch == '' }}
run: conan config install https://github.com/Ultimaker/conan-config.git run: conan config install https://github.com/Ultimaker/conan-config.git
- name: Create the Packages - name: Create the Packages (Bash)
run: conan install ${{ inputs.cura_conan_version }} ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=${{ inputs.enterprise }} -o cura:staging=${{ inputs.staging }} --json "cura_inst/conan_install_info.json" if: ${{ runner.os != 'Windows' }}
run: conan install $CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$ENTERPRISE -o cura:staging=$STAGING --json "cura_inst/conan_install_info.json"
- name: Create the Packages (Powershell)
if: ${{ runner.os == 'Windows' }}
run: conan install $Env:CURA_CONAN_VERSION ${{ inputs.conan_args }} --build=missing --update -if cura_inst -g VirtualPythonEnv -o cura:enterprise=$Env:ENTERPRISE -o cura:staging=$Env:STAGING --json "cura_inst/conan_install_info.json"
- name: Set Environment variables for Cura (bash) - name: Set Environment variables for Cura (bash)
if: ${{ runner.os != 'Windows' }} if: ${{ runner.os != 'Windows' }}

View File

@ -0,0 +1,35 @@
name: notify_on_print_profile_change
on:
push:
branches: [ "main" ]
paths:
- 'resources/definitions/fdmprinter.def.json'
- 'resources/definitions/ultimaker**'
- 'resources/extruders/ultimaker**'
- 'resources/intent/ultimaker**'
- 'resources/quality/ultimaker**'
- 'resources/variants/ultimaker**'
pull_request:
branches: [ "main" ]
paths:
- 'resources/definitions/fdmprinter.def.json'
- 'resources/definitions/ultimaker**'
- 'resources/extruders/ultimaker**'
- 'resources/intent/ultimaker**'
- 'resources/quality/ultimaker**'
- 'resources/variants/ultimaker**'
jobs:
slackNotification:
name: Slack Notification
runs-on: ubuntu-latest
steps:
- name: Ultimaker Print Profile Changed
uses: rtCamp/action-slack-notify@v2
env:
SLACK_CHANNEL: profile-changes
SLACK_USERNAME: ${{ github.repository }}
SLACK_COLOR: '#00FF00'
SLACK_TITLE: Print profiles changed
MSG_MINIMAL: commit
SLACK_WEBHOOK: ${{ secrets.SLACK_CURA_PPM_HOOK }}

View File

@ -60,6 +60,9 @@ env:
CONAN_LOGGING_LEVEL: info CONAN_LOGGING_LEVEL: info
CONAN_NON_INTERACTIVE: 1 CONAN_NON_INTERACTIVE: 1
permissions:
contents: read
jobs: jobs:
conan-recipe-version: conan-recipe-version:
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
@ -144,6 +147,11 @@ jobs:
path: "tests/**/*.xml" path: "tests/**/*.xml"
publish-test-results: publish-test-results:
permissions:
contents: read # to fetch code (actions/checkout)
checks: write
pull-requests: write # to comment on pull request
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
needs: [ testing ] needs: [ testing ]
if: success() || failure() if: success() || failure()

View File

@ -10,9 +10,324 @@
# requirements (use the <dep_name>/(latest)@ultimaker/testing) # requirements (use the <dep_name>/(latest)@ultimaker/testing)
# #
# Subject to change in the future! # Subject to change in the future!
"5.2.0-beta.2":
requirements:
- "pyarcus/(latest)@ultimaker/stable"
- "curaengine/(latest)@ultimaker/stable"
- "pysavitar/(latest)@ultimaker/stable"
- "pynest2d/(latest)@ultimaker/stable"
- "uranium/(latest)@ultimaker/stable"
- "fdm_materials/(latest)@ultimaker/stable"
- "cura_binary_data/(latest)@ultimaker/stable"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.2.0-beta.1":
requirements:
- "pyarcus/5.2.0-beta.1"
- "curaengine/5.2.0-beta.1"
- "pysavitar/5.2.0-beta.1"
- "pynest2d/5.2.0-beta.1"
- "uranium/5.2.0-beta.1"
- "fdm_materials/5.2.0-beta.1"
- "cura_binary_data/5.2.0-beta.1"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.2.0":
requirements:
- "pyarcus/5.2.0"
- "curaengine/5.2.0"
- "pysavitar/5.2.0"
- "pynest2d/5.2.0"
- "uranium/5.2.0"
- "fdm_materials/5.2.0"
- "cura_binary_data/5.2.0"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.2.0-alpha": "5.2.0-alpha":
requirements: requirements:
- "pyarcus/(latest)@ultimaker/testing" - "pyarcus/5.2@ultimaker/testing"
- "curaengine/(latest)@ultimaker/testing" - "curaengine/(latest)@ultimaker/testing"
- "pysavitar/(latest)@ultimaker/testing" - "pysavitar/(latest)@ultimaker/testing"
- "pynest2d/(latest)@ultimaker/testing" - "pynest2d/(latest)@ultimaker/testing"

View File

@ -7,7 +7,7 @@ from conan import ConanFile
from conan.tools.files import copy, rmdir, save from conan.tools.files import copy, rmdir, save
from conan.tools.env import VirtualRunEnv, Environment from conan.tools.env import VirtualRunEnv, Environment
from conan.tools.scm import Version from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration from conan.errors import ConanInvalidConfiguration, ConanException
required_conan_version = ">=1.50.0" required_conan_version = ">=1.50.0"
@ -149,10 +149,13 @@ class CuraConan(ConanFile):
with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f: with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f:
cura_version_py = Template(f.read()) cura_version_py = Template(f.read())
cura_version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) # If you want a specific Cura version to show up on the splash screen add the user configuration `user.cura:version=VERSION`
if self.options.internal: # the global.conf, profile, package_info (of dependency) or via the cmd line `-c user.cura:version=VERSION`
version = Version(cura_version) cura_version = Version(self.conf.get("user.cura:version", default = self.version, check_type = str))
cura_version = f"{version.major}.{version.minor}.{version.patch}-{version.prerelease.replace('+', '+internal_')}" pre_tag = f"-{cura_version.pre}" if cura_version.pre else ""
build_tag = f"+{cura_version.build}" if cura_version.build else ""
internal_tag = f"+internal" if self.options.internal else ""
cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}{internal_tag}"
with open(Path(location, "CuraVersion.py"), "w") as f: with open(Path(location, "CuraVersion.py"), "w") as f:
f.write(cura_version_py.render( f.write(cura_version_py.render(
@ -199,20 +202,25 @@ class CuraConan(ConanFile):
else: else:
continue continue
if not src_path.exists(): if not src_path.exists():
self.output.warning(f"Source path for binary {binary['binary']} does not exist")
continue continue
for bin in src_path.glob(binary["binary"] + ".*[exe|dll|so|dylib]"):
for bin in src_path.glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"):
binaries.append((str(bin), binary["dst"])) binaries.append((str(bin), binary["dst"]))
for bin in src_path.glob(binary["binary"]): for bin in src_path.glob(binary["binary"]):
binaries.append((str(bin), binary["dst"])) binaries.append((str(bin), binary["dst"]))
for _, dependency in self.dependencies.items(): # Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller
for _, dependency in self.dependencies.host.items():
for bin_paths in dependency.cpp_info.bindirs: for bin_paths in dependency.cpp_info.bindirs:
binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dll")]) binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dll")])
binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.dylib")]) for lib_paths in dependency.cpp_info.libdirs:
binaries.extend([(f"{p}", ".") for p in Path(bin_paths).glob("**/*.so")]) binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*.so*")])
binaries.extend([(f"{p}", ".") for p in Path(lib_paths).glob("**/*.dylib*")])
# Copy dynamic libs from lib path # Copy dynamic libs from lib path
binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib")]) binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.dylib*")])
binaries.extend([(f"{p}", ".") for p in Path(self._base_dir.joinpath("lib")).glob("**/*.so*")])
# Collect all dll's from PyQt6 and place them in the root # Collect all dll's from PyQt6 and place them in the root
binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")]) binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")])

View File

@ -14,7 +14,7 @@ DEFAULT_CURA_LATEST_URL = "https://software.ultimaker.com/latest.json"
# Each release has a fixed SDK version coupled with it. It doesn't make sense to make it configurable because, for # Each release has a fixed SDK version coupled with it. It doesn't make sense to make it configurable because, for
# example Cura 3.2 with SDK version 6.1 will not work. So the SDK version is hard-coded here and left out of the # example Cura 3.2 with SDK version 6.1 will not work. So the SDK version is hard-coded here and left out of the
# CuraVersion.py.in template. # CuraVersion.py.in template.
CuraSDKVersion = "8.1.0" CuraSDKVersion = "8.2.0"
try: try:
from cura.CuraVersion import CuraLatestURL from cura.CuraVersion import CuraLatestURL

View File

@ -33,8 +33,11 @@ class MachineAction(QObject, PluginObject):
self._qml_url = "" self._qml_url = ""
self._view = None self._view = None
self._finished = False self._finished = False
self._open_as_dialog = True
self._visible = True
labelChanged = pyqtSignal() labelChanged = pyqtSignal()
visibilityChanged = pyqtSignal()
onFinished = pyqtSignal() onFinished = pyqtSignal()
def getKey(self) -> str: def getKey(self) -> str:
@ -79,6 +82,15 @@ class MachineAction(QObject, PluginObject):
pass pass
@pyqtSlot()
def execute(self) -> None:
self._execute()
def _execute(self) -> None:
"""Protected implementation of execute."""
pass
@pyqtSlot() @pyqtSlot()
def setFinished(self) -> None: def setFinished(self) -> None:
self._finished = True self._finished = True
@ -114,3 +126,30 @@ class MachineAction(QObject, PluginObject):
@pyqtSlot(result = QObject) @pyqtSlot(result = QObject)
def getDisplayItem(self) -> Optional["QObject"]: def getDisplayItem(self) -> Optional["QObject"]:
return self._createViewFromQML() return self._createViewFromQML()
@pyqtProperty(bool, constant=True)
def shouldOpenAsDialog(self) -> bool:
"""Whether this action will show a dialog.
If not, the action will directly run the function inside execute().
:return: Defaults to true to be in line with the old behaviour.
"""
return self._open_as_dialog
@pyqtSlot()
def setVisible(self, visible: bool) -> None:
if self._visible != visible:
self._visible = visible
self.visibilityChanged.emit()
@pyqtProperty(bool, notify = visibilityChanged)
def visible(self) -> bool:
"""Whether this action button will be visible.
Example: Show only when isLoggedIn
:return: Defaults to true to be in line with the old behaviour.
"""
return self._visible

View File

@ -31,9 +31,19 @@ class CompatibleMachineModel(ListModel):
machine_manager.globalContainerChanged.connect(self._update) machine_manager.globalContainerChanged.connect(self._update)
machine_manager.outputDevicesChanged.connect(self._update) machine_manager.outputDevicesChanged.connect(self._update)
@pyqtSlot()
def forceUpdate(self):
self._update()
def _update(self) -> None: def _update(self) -> None:
self.clear() self.clear()
def _makeMaterial(brand, name, color):
if name.lower() in ["", "empty"]:
return {"brand": "", "name": "(empty)", "hexcolor": "#ffffff"}
else:
return {"brand": brand, "name": name, "hexcolor": color}
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
machine_manager = CuraApplication.getInstance().getMachineManager() machine_manager = CuraApplication.getInstance().getMachineManager()
@ -44,11 +54,8 @@ class CompatibleMachineModel(ListModel):
# initialize & add current active material: # initialize & add current active material:
for extruder in printer.extruders: for extruder in printer.extruders:
materials = [{ materials = [_makeMaterial(
"brand": extruder.activeMaterial.brand, extruder.activeMaterial.brand, extruder.activeMaterial.name, extruder.activeMaterial.color)]
"name": extruder.activeMaterial.name,
"hexcolor": extruder.activeMaterial.color,
}]
extruder_configs[extruder.getPosition()] = { extruder_configs[extruder.getPosition()] = {
"position": extruder.getPosition(), "position": extruder.getPosition(),
"core": extruder.hotendID, "core": extruder.hotendID,
@ -62,11 +69,9 @@ class CompatibleMachineModel(ListModel):
Logger.log("w", f"No active extruder for position {extruder.position}.") Logger.log("w", f"No active extruder for position {extruder.position}.")
continue continue
extruder_configs[extruder.position]["materials"].append({ entry = _makeMaterial(extruder.material.brand, extruder.material.name, extruder.material.color)
"brand": extruder.material.brand, if entry not in extruder_configs[extruder.position]["materials"]:
"name": extruder.material.name, extruder_configs[extruder.position]["materials"].append(entry)
"hexcolor": extruder.material.color
})
if any([len(extruder["materials"]) > 0 for extruder in extruder_configs.values()]): if any([len(extruder["materials"]) > 0 for extruder in extruder_configs.values()]):
self.appendItem({ self.appendItem({

View File

@ -86,14 +86,16 @@ class MachineListModel(ListModel):
machines_manager = CuraApplication.getInstance().getMachineManager() machines_manager = CuraApplication.getInstance().getMachineManager()
other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine") other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine")
other_machine_stacks.sort(key = lambda machine: machine.getName().upper())
abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True")
abstract_machine_stacks.sort(key = lambda machine: machine.getName(), reverse = True) abstract_machine_stacks.sort(key = lambda machine: machine.getName().upper())
for abstract_machine in abstract_machine_stacks: for abstract_machine in abstract_machine_stacks:
definition_id = abstract_machine.definition.getId() definition_id = abstract_machine.definition.getId()
online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True)
online_machine_stacks = list(filter(lambda machine: machine.hasNetworkedConnection(), online_machine_stacks)) online_machine_stacks = list(filter(lambda machine: machine.hasNetworkedConnection(), online_machine_stacks))
online_machine_stacks.sort(key=lambda machine: machine.getName().upper())
other_machine_stacks.remove(abstract_machine) other_machine_stacks.remove(abstract_machine)
if abstract_machine in online_machine_stacks: if abstract_machine in online_machine_stacks:

View File

@ -904,6 +904,7 @@ class MachineManager(QObject):
if self._global_container_stack is None \ if self._global_container_stack is None \
or self._global_container_stack.getProperty(setting_key, "value") == new_value \ or self._global_container_stack.getProperty(setting_key, "value") == new_value \
or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") is None \
or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") < 2: or self._global_container_stack.definitionChanges.getProperty("extruders_enabled_count", "value") < 2:
return return

View File

@ -13,8 +13,8 @@ export QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb
# Use the openssl.cnf packaged in the AppImage # Use the openssl.cnf packaged in the AppImage
export OPENSSL_CONF="$scriptdir/openssl.cnf" export OPENSSL_CONF="$scriptdir/openssl.cnf"
$scriptdir/Ultimaker-Cura "$@"
# If this variable is set on Zorin OS 16 Cura would crash # If this variable is set on Zorin OS 16 Cura would crash
# unset `QT_STYLE_OVERRIDE` as a precaution # unset `QT_STYLE_OVERRIDE` as a precaution
unset QT_STYLE_OVERRIDE unset QT_STYLE_OVERRIDE
$scriptdir/Ultimaker-Cura "$@"

View File

@ -12,9 +12,9 @@
!define INSTALLER_NAME "{{ destination }}" !define INSTALLER_NAME "{{ destination }}"
!define MAIN_APP_EXE "{{ main_app }}" !define MAIN_APP_EXE "{{ main_app }}"
!define INSTALL_TYPE "SetShellVarContext all" !define INSTALL_TYPE "SetShellVarContext all"
!define REG_ROOT "HKCR" !define REG_ROOT "HKLM"
!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}" !define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}-${VERSION}"
!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}" !define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}-${VERSION}"
!define REG_START_MENU "Start Menu Folder" !define REG_START_MENU "Start Menu Folder"
@ -163,7 +163,7 @@ Delete "$INSTDIR\uninstall.exe"
Delete "$INSTDIR\${APP_NAME} website.url" Delete "$INSTDIR\${APP_NAME} website.url"
!endif !endif
RmDir "$INSTDIR" RmDir /r /REBOOTOK "$INSTDIR"
!ifdef REG_START_MENU !ifdef REG_START_MENU
!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder !insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder

View File

@ -53,6 +53,7 @@ _ignored_machine_network_metadata = {
"connection_type", "connection_type",
"capabilities", "capabilities",
"octoprint_api_key", "octoprint_api_key",
"is_abstract_machine"
} # type: Set[str] } # type: Set[str]

View File

@ -12,6 +12,7 @@ from PyQt6.QtCore import QBuffer
from UM.Application import Application from UM.Application import Application
from UM.Logger import Logger from UM.Logger import Logger
from UM.Settings.SettingFunction import SettingFunction
from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement. from UM.Mesh.MeshWriter import MeshWriter # The writer we need to implement.
from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType from UM.MimeTypeDatabase import MimeTypeDatabase, MimeType
from UM.PluginRegistry import PluginRegistry # To get the g-code writer. from UM.PluginRegistry import PluginRegistry # To get the g-code writer.
@ -213,6 +214,7 @@ class UFPWriter(MeshWriter):
def _getSliceMetadata(self) -> Dict[str, Dict[str, Dict[str, str]]]: def _getSliceMetadata(self) -> Dict[str, Dict[str, Dict[str, str]]]:
"""Get all changed settings and all settings. For each extruder and the global stack""" """Get all changed settings and all settings. For each extruder and the global stack"""
print_information = CuraApplication.getInstance().getPrintInformation() print_information = CuraApplication.getInstance().getPrintInformation()
machine_manager = CuraApplication.getInstance().getMachineManager()
settings = { settings = {
"material": { "material": {
"length": print_information.materialLengths, "length": print_information.materialLengths,
@ -222,7 +224,9 @@ class UFPWriter(MeshWriter):
"global": { "global": {
"changes": {}, "changes": {},
"all_settings": {}, "all_settings": {},
} },
"intent": machine_manager.activeIntentCategory,
"quality": machine_manager.activeQualityOrQualityChangesName,
} }
global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack())
@ -230,11 +234,17 @@ class UFPWriter(MeshWriter):
# Add global user or quality changes # Add global user or quality changes
global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges) global_flattened_changes = InstanceContainer.createMergedInstanceContainer(global_stack.userChanges, global_stack.qualityChanges)
for setting in global_flattened_changes.getAllKeys(): for setting in global_flattened_changes.getAllKeys():
settings["global"]["changes"][setting] = global_flattened_changes.getProperty(setting, "value") value = global_flattened_changes.getProperty(setting, "value")
if isinstance(value, SettingFunction):
value = value(global_flattened_changes)
settings["global"]["changes"][setting] = value
# Get global all settings values without user or quality changes # Get global all settings values without user or quality changes
for setting in global_stack.getAllKeys(): for setting in global_stack.getAllKeys():
settings["global"]["all_settings"][setting] = global_stack.getProperty(setting, "value") value = global_stack.getProperty(setting, "value")
if isinstance(value, SettingFunction):
value = value(global_stack)
settings["global"]["all_settings"][setting] = value
for i, extruder in enumerate(global_stack.extruderList): for i, extruder in enumerate(global_stack.extruderList):
# Add extruder fields to settings dictionary # Add extruder fields to settings dictionary
@ -246,10 +256,16 @@ class UFPWriter(MeshWriter):
# Add extruder user or quality changes # Add extruder user or quality changes
extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges) extruder_flattened_changes = InstanceContainer.createMergedInstanceContainer(extruder.userChanges, extruder.qualityChanges)
for setting in extruder_flattened_changes.getAllKeys(): for setting in extruder_flattened_changes.getAllKeys():
settings[f"extruder_{i}"]["changes"][setting] = extruder_flattened_changes.getProperty(setting, "value") value = extruder_flattened_changes.getProperty(setting, "value")
if isinstance(value, SettingFunction):
value = value(extruder_flattened_changes)
settings[f"extruder_{i}"]["changes"][setting] = value
# Get extruder all settings values without user or quality changes # Get extruder all settings values without user or quality changes
for setting in extruder.getAllKeys(): for setting in extruder.getAllKeys():
settings[f"extruder_{i}"]["all_settings"][setting] = extruder.getProperty(setting, "value") value = extruder.getProperty(setting, "value")
if isinstance(value, SettingFunction):
value = value(extruder)
settings[f"extruder_{i}"]["all_settings"][setting] = value
return settings return settings

View File

@ -127,7 +127,7 @@ Component
id: sendToFactoryButton id: sendToFactoryButton
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: catalog.i18nc("@button", "View printers in Digital Factory") text: catalog.i18nc("@button", "View printers in Digital Factory")
onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type") onClicked: Qt.openUrlExternally("https://digitalfactory.ultimaker.com/app/welcome?utm_source=cura&utm_medium=software&utm_campaign=monitor-view-cloud-printer-type")
} }
} }
} }

View File

@ -10,7 +10,6 @@ from PyQt6.QtGui import QDesktopServices
from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest # Parse errors specific to print job uploading. from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest # Parse errors specific to print job uploading.
from UM import i18nCatalog from UM import i18nCatalog
from UM.Backend.Backend import BackendState
from UM.FileHandler.FileHandler import FileHandler from UM.FileHandler.FileHandler import FileHandler
from UM.Logger import Logger from UM.Logger import Logger
from UM.Scene.SceneNode import SceneNode from UM.Scene.SceneNode import SceneNode
@ -18,6 +17,8 @@ from UM.Version import Version
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState
from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from cura.PrinterOutput.PrinterOutputDevice import ConnectionType
from cura.Scene.GCodeListDecorator import GCodeListDecorator
from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator
from .CloudApiClient import CloudApiClient from .CloudApiClient import CloudApiClient
from ..ExportFileJob import ExportFileJob from ..ExportFileJob import ExportFileJob
@ -110,6 +111,9 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
self._pre_upload_print_job = None # type: Optional[CloudPrintJobResponse] self._pre_upload_print_job = None # type: Optional[CloudPrintJobResponse]
self._uploaded_print_job = None # type: Optional[CloudPrintJobResponse] self._uploaded_print_job = None # type: Optional[CloudPrintJobResponse]
CuraApplication.getInstance().getBackend().backendDone.connect(self._resetPrintJob)
CuraApplication.getInstance().getController().getScene().sceneChanged.connect(self._onSceneChanged)
def connect(self) -> None: def connect(self) -> None:
"""Connects this device.""" """Connects this device."""
@ -117,8 +121,6 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
return return
Logger.log("i", "Attempting to connect to cluster %s", self.key) Logger.log("i", "Attempting to connect to cluster %s", self.key)
super().connect() super().connect()
CuraApplication.getInstance().getBackend().backendStateChange.connect(self._onBackendStateChange)
self._update() self._update()
def disconnect(self) -> None: def disconnect(self) -> None:
@ -128,11 +130,14 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
return return
super().disconnect() super().disconnect()
Logger.log("i", "Disconnected from cluster %s", self.key) Logger.log("i", "Disconnected from cluster %s", self.key)
CuraApplication.getInstance().getBackend().backendStateChange.disconnect(self._onBackendStateChange)
def _onBackendStateChange(self, _: BackendState) -> None: def _onSceneChanged(self, node: SceneNode):
"""Resets the print job that was uploaded to force a new upload, runs whenever the user re-slices.""" # This will reset the print job if a ufp file is loaded. This forces a new upload when printing via cloud from ufp.
if node.getDecorator(GCodeListDecorator) or node.getDecorator(SliceableObjectDecorator):
self._resetPrintJob()
def _resetPrintJob(self) -> None:
"""Resets the print job that was uploaded to force a new upload, runs whenever slice finishes."""
self._tool_path = None self._tool_path = None
self._pre_upload_print_job = None self._pre_upload_print_job = None
self._uploaded_print_job = None self._uploaded_print_job = None
@ -406,3 +411,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
root_url_prefix = "-staging" if self._account.is_staging else "" root_url_prefix = "-staging" if self._account.is_staging else ""
return f"https://digitalfactory{root_url_prefix}.ultimaker.com/app/jobs/{self.clusterData.cluster_id}" return f"https://digitalfactory{root_url_prefix}.ultimaker.com/app/jobs/{self.clusterData.cluster_id}"
def __del__(self):
CuraApplication.getInstance().getBackend().backendDone.disconnect(self._resetPrintJob)
CuraApplication.getInstance().getController().getScene().sceneChanged.disconnect(self._onSceneChanged)

View File

@ -66,16 +66,30 @@ pyclipper==1.3.0.post2; \
--hash=sha256:5175ee50772a7dcc0feaab19ccf5b979b6066f4753edb330700231cf70d0c918 \ --hash=sha256:5175ee50772a7dcc0feaab19ccf5b979b6066f4753edb330700231cf70d0c918 \
--hash=sha256:19a6809d9cbd535d0fe922e9315babb8d70b5c7dcd43e0f89740d09c406b40f8 \ --hash=sha256:19a6809d9cbd535d0fe922e9315babb8d70b5c7dcd43e0f89740d09c406b40f8 \
--hash=sha256:5c5d50498e335d7f969ca5ad5886e77c40088521dcabab4feb2f93727140251e --hash=sha256:5c5d50498e335d7f969ca5ad5886e77c40088521dcabab4feb2f93727140251e
scipy==1.8.1; \ scipy==1.9.1 \
--hash=sha256:9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33 \ --hash=sha256:c61b4a91a702e8e04aeb0bfc40460e1f17a640977c04dda8757efb0199c75332 \
--hash=sha256:4e53a55f6a4f22de01ffe1d2f016e30adedb67a699a310cdcac312806807ca81 \ --hash=sha256:d79da472015d0120ba9b357b28a99146cd6c17b9609403164b1a8ed149b4dfc8 \
--hash=sha256:a0aa8220b89b2e3748a2836fbfa116194378910f1a6e78e4675a095bcd2c762d \ --hash=sha256:825951b88f56765aeb6e5e38ac9d7d47407cfaaeb008d40aa1b45a2d7ea2731e \
--hash=sha256:02b567e722d62bddd4ac253dafb01ce7ed8742cf8031aea030a41414b86c1125 \ --hash=sha256:f950a04b33e17b38ff561d5a0951caf3f5b47caa841edd772ffb7959f20a6af0 \
--hash=sha256:65b77f20202599c51eb2771d11a6b899b97989159b7975e9b5259594f1d35ef4 \ --hash=sha256:8cc81ac25659fec73599ccc52c989670e5ccd8974cf34bacd7b54a8d809aff1a \
--hash=sha256:9dd4012ac599a1e7eb63c114d1eee1bcfc6dc75a29b589ff0ad0bb3d9412034f \ --hash=sha256:8d3faa40ac16c6357aaf7ea50394ea6f1e8e99d75e927a51102b1943b311b4d9 \
--hash=sha256:70de2f11bf64ca9921fda018864c78af7147025e467ce9f4a11bc877266900a6 \ --hash=sha256:7a412c476a91b080e456229e413792bbb5d6202865dae963d1e6e28c2bb58691 \
--hash=sha256:83606129247e7610b58d0e1e93d2c5133959e9cf93555d3c27e536892f1ba1f2 \ --hash=sha256:eb954f5aca4d26f468bbebcdc5448348eb287f7bea536c6306f62ea062f63d9a \
--hash=sha256:f3e7a8867f307e3359cc0ed2c63b61a1e33a19080f92fe377bc7d49f646f2ec1 --hash=sha256:3c6f5d1d4b9a5e4fe5e14f26ffc9444fc59473bbf8d45dc4a9a15283b7063a72 \
--hash=sha256:bc4e2c77d4cd015d739e75e74ebbafed59ba8497a7ed0fd400231ed7683497c4 \
--hash=sha256:0419485dbcd0ed78c0d5bf234c5dd63e86065b39b4d669e45810d42199d49521 \
--hash=sha256:34441dfbee5b002f9e15285014fd56e5e3372493c3e64ae297bae2c4b9659f5a \
--hash=sha256:b97b479f39c7e4aaf807efd0424dec74bbb379108f7d22cf09323086afcd312c \
--hash=sha256:e8fe305d9d67a81255e06203454729405706907dccbdfcc330b7b3482a6c371d \
--hash=sha256:39ab9240cd215a9349c85ab908dda6d732f7d3b4b192fa05780812495536acc4 \
--hash=sha256:71487c503e036740635f18324f62a11f283a632ace9d35933b2b0a04fd898c98 \
--hash=sha256:3bc1ab68b9a096f368ba06c3a5e1d1d50957a86665fc929c4332d21355e7e8f4 \
--hash=sha256:f7c39f7dbb57cce00c108d06d731f3b0e2a4d3a95c66d96bce697684876ce4d4 \
--hash=sha256:47d1a95bd9d37302afcfe1b84c8011377c4f81e33649c5a5785db9ab827a6ade \
--hash=sha256:96d7cf7b25c9f23c59a766385f6370dab0659741699ecc7a451f9b94604938ce \
--hash=sha256:09412eb7fb60b8f00b328037fd814d25d261066ebc43a1e339cdce4f7502877e \
--hash=sha256:90c805f30c46cf60f1e76e947574f02954d25e3bb1e97aa8a07bc53aa31cf7d1 \
--hash=sha256:26d28c468900e6d5fdb37d2812ab46db0ccd22c63baa095057871faa3a498bc9
trimesh==3.9.36 \ trimesh==3.9.36 \
--hash=sha256:f01e8edab14d1999700c980c21a1546f37417216ad915a53be649d263130181e \ --hash=sha256:f01e8edab14d1999700c980c21a1546f37417216ad915a53be649d263130181e \
--hash=sha256:8ac8bea693b3ee119f11b022fc9b9481c9f1af06cb38bc859bf5d16bbbe49b23 --hash=sha256:8ac8bea693b3ee119f11b022fc9b9481c9f1af06cb38bc859bf5d16bbbe49b23

View File

@ -6,7 +6,7 @@
"display_name": "3MF Reader", "display_name": "3MF Reader",
"description": "Provides support for reading 3MF files.", "description": "Provides support for reading 3MF files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -23,7 +23,7 @@
"display_name": "3MF Writer", "display_name": "3MF Writer",
"description": "Provides support for writing 3MF files.", "description": "Provides support for writing 3MF files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -40,7 +40,7 @@
"display_name": "AMF Reader", "display_name": "AMF Reader",
"description": "Provides support for reading AMF files.", "description": "Provides support for reading AMF files.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "fieldOfView", "author_id": "fieldOfView",
@ -57,7 +57,7 @@
"display_name": "Cura Backups", "display_name": "Cura Backups",
"description": "Backup and restore your configuration.", "description": "Backup and restore your configuration.",
"package_version": "1.2.0", "package_version": "1.2.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -74,7 +74,7 @@
"display_name": "CuraEngine Backend", "display_name": "CuraEngine Backend",
"description": "Provides the link to the CuraEngine slicing backend.", "description": "Provides the link to the CuraEngine slicing backend.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -91,7 +91,7 @@
"display_name": "Cura Profile Reader", "display_name": "Cura Profile Reader",
"description": "Provides support for importing Cura profiles.", "description": "Provides support for importing Cura profiles.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -108,7 +108,7 @@
"display_name": "Cura Profile Writer", "display_name": "Cura Profile Writer",
"description": "Provides support for exporting Cura profiles.", "description": "Provides support for exporting Cura profiles.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -125,7 +125,7 @@
"display_name": "Ultimaker Digital Library", "display_name": "Ultimaker Digital Library",
"description": "Connects to the Digital Library, allowing Cura to open files from and save files to the Digital Library.", "description": "Connects to the Digital Library, allowing Cura to open files from and save files to the Digital Library.",
"package_version": "1.1.0", "package_version": "1.1.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -142,7 +142,7 @@
"display_name": "Firmware Update Checker", "display_name": "Firmware Update Checker",
"description": "Checks for firmware updates.", "description": "Checks for firmware updates.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -159,7 +159,7 @@
"display_name": "Firmware Updater", "display_name": "Firmware Updater",
"description": "Provides a machine actions for updating firmware.", "description": "Provides a machine actions for updating firmware.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -176,7 +176,7 @@
"display_name": "Compressed G-code Reader", "display_name": "Compressed G-code Reader",
"description": "Reads g-code from a compressed archive.", "description": "Reads g-code from a compressed archive.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -193,7 +193,7 @@
"display_name": "Compressed G-code Writer", "display_name": "Compressed G-code Writer",
"description": "Writes g-code to a compressed archive.", "description": "Writes g-code to a compressed archive.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -210,7 +210,7 @@
"display_name": "G-Code Profile Reader", "display_name": "G-Code Profile Reader",
"description": "Provides support for importing profiles from g-code files.", "description": "Provides support for importing profiles from g-code files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -227,7 +227,7 @@
"display_name": "G-Code Reader", "display_name": "G-Code Reader",
"description": "Allows loading and displaying G-code files.", "description": "Allows loading and displaying G-code files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "VictorLarchenko", "author_id": "VictorLarchenko",
@ -244,7 +244,7 @@
"display_name": "G-Code Writer", "display_name": "G-Code Writer",
"description": "Writes g-code to a file.", "description": "Writes g-code to a file.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -261,7 +261,7 @@
"display_name": "Image Reader", "display_name": "Image Reader",
"description": "Enables ability to generate printable geometry from 2D image files.", "description": "Enables ability to generate printable geometry from 2D image files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -278,7 +278,7 @@
"display_name": "Legacy Cura Profile Reader", "display_name": "Legacy Cura Profile Reader",
"description": "Provides support for importing profiles from legacy Cura versions.", "description": "Provides support for importing profiles from legacy Cura versions.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -295,7 +295,7 @@
"display_name": "Machine Settings Action", "display_name": "Machine Settings Action",
"description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).", "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "fieldOfView", "author_id": "fieldOfView",
@ -312,7 +312,7 @@
"display_name": "Model Checker", "display_name": "Model Checker",
"description": "Checks models and print configuration for possible printing issues and give suggestions.", "description": "Checks models and print configuration for possible printing issues and give suggestions.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -329,7 +329,7 @@
"display_name": "Monitor Stage", "display_name": "Monitor Stage",
"description": "Provides a monitor stage in Cura.", "description": "Provides a monitor stage in Cura.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -346,7 +346,7 @@
"display_name": "Per-Object Settings Tool", "display_name": "Per-Object Settings Tool",
"description": "Provides the per-model settings.", "description": "Provides the per-model settings.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -363,7 +363,7 @@
"display_name": "Post Processing", "display_name": "Post Processing",
"description": "Extension that allows for user created scripts for post processing.", "description": "Extension that allows for user created scripts for post processing.",
"package_version": "2.2.1", "package_version": "2.2.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -380,7 +380,7 @@
"display_name": "Prepare Stage", "display_name": "Prepare Stage",
"description": "Provides a prepare stage in Cura.", "description": "Provides a prepare stage in Cura.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -397,7 +397,7 @@
"display_name": "Preview Stage", "display_name": "Preview Stage",
"description": "Provides a preview stage in Cura.", "description": "Provides a preview stage in Cura.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -414,7 +414,7 @@
"display_name": "Removable Drive Output Device", "display_name": "Removable Drive Output Device",
"description": "Provides removable drive hotplugging and writing support.", "description": "Provides removable drive hotplugging and writing support.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -431,7 +431,7 @@
"display_name": "Sentry Logger", "display_name": "Sentry Logger",
"description": "Logs certain events so that they can be used by the crash reporter", "description": "Logs certain events so that they can be used by the crash reporter",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -448,7 +448,7 @@
"display_name": "Simulation View", "display_name": "Simulation View",
"description": "Provides the Simulation view.", "description": "Provides the Simulation view.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -465,7 +465,7 @@
"display_name": "Slice Info", "display_name": "Slice Info",
"description": "Submits anonymous slice info. Can be disabled through preferences.", "description": "Submits anonymous slice info. Can be disabled through preferences.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -482,7 +482,7 @@
"display_name": "Solid View", "display_name": "Solid View",
"description": "Provides a normal solid mesh view.", "description": "Provides a normal solid mesh view.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -499,7 +499,7 @@
"display_name": "Support Eraser Tool", "display_name": "Support Eraser Tool",
"description": "Creates an eraser mesh to block the printing of support in certain places.", "description": "Creates an eraser mesh to block the printing of support in certain places.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -516,7 +516,7 @@
"display_name": "Trimesh Reader", "display_name": "Trimesh Reader",
"description": "Provides support for reading model files.", "description": "Provides support for reading model files.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -533,7 +533,7 @@
"display_name": "Marketplace", "display_name": "Marketplace",
"description": "Find, manage and install new Cura packages.", "description": "Find, manage and install new Cura packages.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -550,7 +550,7 @@
"display_name": "UFP Reader", "display_name": "UFP Reader",
"description": "Provides support for reading Ultimaker Format Packages.", "description": "Provides support for reading Ultimaker Format Packages.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -567,7 +567,7 @@
"display_name": "UFP Writer", "display_name": "UFP Writer",
"description": "Provides support for writing Ultimaker Format Packages.", "description": "Provides support for writing Ultimaker Format Packages.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -584,7 +584,7 @@
"display_name": "Ultimaker Machine Actions", "display_name": "Ultimaker Machine Actions",
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).", "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -601,7 +601,7 @@
"display_name": "UM3 Network Printing", "display_name": "UM3 Network Printing",
"description": "Manages network connections to Ultimaker 3 printers.", "description": "Manages network connections to Ultimaker 3 printers.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -618,7 +618,7 @@
"display_name": "USB Printing", "display_name": "USB Printing",
"description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.",
"package_version": "1.0.2", "package_version": "1.0.2",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -635,7 +635,7 @@
"display_name": "Version Upgrade 2.1 to 2.2", "display_name": "Version Upgrade 2.1 to 2.2",
"description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -652,7 +652,7 @@
"display_name": "Version Upgrade 2.2 to 2.4", "display_name": "Version Upgrade 2.2 to 2.4",
"description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -669,7 +669,7 @@
"display_name": "Version Upgrade 2.5 to 2.6", "display_name": "Version Upgrade 2.5 to 2.6",
"description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -686,7 +686,7 @@
"display_name": "Version Upgrade 2.6 to 2.7", "display_name": "Version Upgrade 2.6 to 2.7",
"description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -703,7 +703,7 @@
"display_name": "Version Upgrade 2.7 to 3.0", "display_name": "Version Upgrade 2.7 to 3.0",
"description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -720,7 +720,7 @@
"display_name": "Version Upgrade 3.0 to 3.1", "display_name": "Version Upgrade 3.0 to 3.1",
"description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -737,7 +737,7 @@
"display_name": "Version Upgrade 3.2 to 3.3", "display_name": "Version Upgrade 3.2 to 3.3",
"description": "Upgrades configurations from Cura 3.2 to Cura 3.3.", "description": "Upgrades configurations from Cura 3.2 to Cura 3.3.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -754,7 +754,7 @@
"display_name": "Version Upgrade 3.3 to 3.4", "display_name": "Version Upgrade 3.3 to 3.4",
"description": "Upgrades configurations from Cura 3.3 to Cura 3.4.", "description": "Upgrades configurations from Cura 3.3 to Cura 3.4.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -771,7 +771,7 @@
"display_name": "Version Upgrade 3.4 to 3.5", "display_name": "Version Upgrade 3.4 to 3.5",
"description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -788,7 +788,7 @@
"display_name": "Version Upgrade 3.5 to 4.0", "display_name": "Version Upgrade 3.5 to 4.0",
"description": "Upgrades configurations from Cura 3.5 to Cura 4.0.", "description": "Upgrades configurations from Cura 3.5 to Cura 4.0.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -805,7 +805,7 @@
"display_name": "Version Upgrade 4.0 to 4.1", "display_name": "Version Upgrade 4.0 to 4.1",
"description": "Upgrades configurations from Cura 4.0 to Cura 4.1.", "description": "Upgrades configurations from Cura 4.0 to Cura 4.1.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -822,7 +822,7 @@
"display_name": "Version Upgrade 4.1 to 4.2", "display_name": "Version Upgrade 4.1 to 4.2",
"description": "Upgrades configurations from Cura 4.1 to Cura 4.2.", "description": "Upgrades configurations from Cura 4.1 to Cura 4.2.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -839,7 +839,7 @@
"display_name": "Version Upgrade 4.2 to 4.3", "display_name": "Version Upgrade 4.2 to 4.3",
"description": "Upgrades configurations from Cura 4.2 to Cura 4.3.", "description": "Upgrades configurations from Cura 4.2 to Cura 4.3.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -856,7 +856,7 @@
"display_name": "Version Upgrade 4.3 to 4.4", "display_name": "Version Upgrade 4.3 to 4.4",
"description": "Upgrades configurations from Cura 4.3 to Cura 4.4.", "description": "Upgrades configurations from Cura 4.3 to Cura 4.4.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -873,7 +873,7 @@
"display_name": "Version Upgrade 4.4 to 4.5", "display_name": "Version Upgrade 4.4 to 4.5",
"description": "Upgrades configurations from Cura 4.4 to Cura 4.5.", "description": "Upgrades configurations from Cura 4.4 to Cura 4.5.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -890,7 +890,7 @@
"display_name": "Version Upgrade 4.5 to 4.6", "display_name": "Version Upgrade 4.5 to 4.6",
"description": "Upgrades configurations from Cura 4.5 to Cura 4.6.", "description": "Upgrades configurations from Cura 4.5 to Cura 4.6.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -907,7 +907,7 @@
"display_name": "Version Upgrade 4.6.0 to 4.6.2", "display_name": "Version Upgrade 4.6.0 to 4.6.2",
"description": "Upgrades configurations from Cura 4.6.0 to Cura 4.6.2.", "description": "Upgrades configurations from Cura 4.6.0 to Cura 4.6.2.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -924,7 +924,7 @@
"display_name": "Version Upgrade 4.6.2 to 4.7", "display_name": "Version Upgrade 4.6.2 to 4.7",
"description": "Upgrades configurations from Cura 4.6.2 to Cura 4.7.", "description": "Upgrades configurations from Cura 4.6.2 to Cura 4.7.",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -941,7 +941,7 @@
"display_name": "Version Upgrade 4.7.0 to 4.8.0", "display_name": "Version Upgrade 4.7.0 to 4.8.0",
"description": "Upgrades configurations from Cura 4.7.0 to Cura 4.8.0", "description": "Upgrades configurations from Cura 4.7.0 to Cura 4.8.0",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -958,7 +958,7 @@
"display_name": "Version Upgrade 4.8.0 to 4.9.0", "display_name": "Version Upgrade 4.8.0 to 4.9.0",
"description": "Upgrades configurations from Cura 4.8.0 to Cura 4.9.0", "description": "Upgrades configurations from Cura 4.8.0 to Cura 4.9.0",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -975,7 +975,7 @@
"display_name": "Version Upgrade 4.9 to 4.10", "display_name": "Version Upgrade 4.9 to 4.10",
"description": "Upgrades configurations from Cura 4.9 to Cura 4.10", "description": "Upgrades configurations from Cura 4.9 to Cura 4.10",
"package_version": "1.0.0", "package_version": "1.0.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1010,7 +1010,7 @@
"display_name": "X3D Reader", "display_name": "X3D Reader",
"description": "Provides support for reading X3D files.", "description": "Provides support for reading X3D files.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "SevaAlekseyev", "author_id": "SevaAlekseyev",
@ -1027,7 +1027,7 @@
"display_name": "XML Material Profiles", "display_name": "XML Material Profiles",
"description": "Provides capabilities to read and write XML-based material profiles.", "description": "Provides capabilities to read and write XML-based material profiles.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1044,7 +1044,7 @@
"display_name": "X-Ray View", "display_name": "X-Ray View",
"description": "Provides the X-Ray view.", "description": "Provides the X-Ray view.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1061,7 +1061,7 @@
"display_name": "Generic ABS", "display_name": "Generic ABS",
"description": "The generic ABS profile which other profiles can be based upon.", "description": "The generic ABS profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1079,7 +1079,7 @@
"display_name": "Generic BAM", "display_name": "Generic BAM",
"description": "The generic BAM profile which other profiles can be based upon.", "description": "The generic BAM profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1097,7 +1097,7 @@
"display_name": "Generic CFF CPE", "display_name": "Generic CFF CPE",
"description": "The generic CFF CPE profile which other profiles can be based upon.", "description": "The generic CFF CPE profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1115,7 +1115,7 @@
"display_name": "Generic CFF PA", "display_name": "Generic CFF PA",
"description": "The generic CFF PA profile which other profiles can be based upon.", "description": "The generic CFF PA profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1133,7 +1133,7 @@
"display_name": "Generic CPE", "display_name": "Generic CPE",
"description": "The generic CPE profile which other profiles can be based upon.", "description": "The generic CPE profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1151,7 +1151,7 @@
"display_name": "Generic CPE+", "display_name": "Generic CPE+",
"description": "The generic CPE+ profile which other profiles can be based upon.", "description": "The generic CPE+ profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1169,7 +1169,7 @@
"display_name": "Generic GFF CPE", "display_name": "Generic GFF CPE",
"description": "The generic GFF CPE profile which other profiles can be based upon.", "description": "The generic GFF CPE profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1187,7 +1187,7 @@
"display_name": "Generic GFF PA", "display_name": "Generic GFF PA",
"description": "The generic GFF PA profile which other profiles can be based upon.", "description": "The generic GFF PA profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1205,7 +1205,7 @@
"display_name": "Generic HIPS", "display_name": "Generic HIPS",
"description": "The generic HIPS profile which other profiles can be based upon.", "description": "The generic HIPS profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1223,7 +1223,7 @@
"display_name": "Generic Nylon", "display_name": "Generic Nylon",
"description": "The generic Nylon profile which other profiles can be based upon.", "description": "The generic Nylon profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1241,7 +1241,7 @@
"display_name": "Generic PC", "display_name": "Generic PC",
"description": "The generic PC profile which other profiles can be based upon.", "description": "The generic PC profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1259,7 +1259,7 @@
"display_name": "Generic PETG", "display_name": "Generic PETG",
"description": "The generic PETG profile which other profiles can be based upon.", "description": "The generic PETG profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1277,7 +1277,7 @@
"display_name": "Generic PLA", "display_name": "Generic PLA",
"description": "The generic PLA profile which other profiles can be based upon.", "description": "The generic PLA profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1295,7 +1295,7 @@
"display_name": "Generic PP", "display_name": "Generic PP",
"description": "The generic PP profile which other profiles can be based upon.", "description": "The generic PP profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1313,7 +1313,7 @@
"display_name": "Generic PVA", "display_name": "Generic PVA",
"description": "The generic PVA profile which other profiles can be based upon.", "description": "The generic PVA profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1331,7 +1331,7 @@
"display_name": "Generic Tough PLA", "display_name": "Generic Tough PLA",
"description": "The generic Tough PLA profile which other profiles can be based upon.", "description": "The generic Tough PLA profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1349,7 +1349,7 @@
"display_name": "Generic TPU", "display_name": "Generic TPU",
"description": "The generic TPU profile which other profiles can be based upon.", "description": "The generic TPU profile which other profiles can be based upon.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://github.com/Ultimaker/fdm_materials", "website": "https://github.com/Ultimaker/fdm_materials",
"author": { "author": {
"author_id": "Generic", "author_id": "Generic",
@ -1367,7 +1367,7 @@
"display_name": "Dagoma Chromatik PLA", "display_name": "Dagoma Chromatik PLA",
"description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.", "description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://dagoma.fr/boutique/filaments.html", "website": "https://dagoma.fr/boutique/filaments.html",
"author": { "author": {
"author_id": "Dagoma", "author_id": "Dagoma",
@ -1384,7 +1384,7 @@
"display_name": "FABtotum ABS", "display_name": "FABtotum ABS",
"description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so its compatible with all versions of the FABtotum Personal fabricator.", "description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so its compatible with all versions of the FABtotum Personal fabricator.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40",
"author": { "author": {
"author_id": "FABtotum", "author_id": "FABtotum",
@ -1401,7 +1401,7 @@
"display_name": "FABtotum Nylon", "display_name": "FABtotum Nylon",
"description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.", "description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53",
"author": { "author": {
"author_id": "FABtotum", "author_id": "FABtotum",
@ -1418,7 +1418,7 @@
"display_name": "FABtotum PLA", "display_name": "FABtotum PLA",
"description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starchs sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotums one is between 185° and 195°.", "description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starchs sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotums one is between 185° and 195°.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39",
"author": { "author": {
"author_id": "FABtotum", "author_id": "FABtotum",
@ -1435,7 +1435,7 @@
"display_name": "FABtotum TPU Shore 98A", "display_name": "FABtotum TPU Shore 98A",
"description": "", "description": "",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66",
"author": { "author": {
"author_id": "FABtotum", "author_id": "FABtotum",
@ -1452,7 +1452,7 @@
"display_name": "Fiberlogy HD PLA", "display_name": "Fiberlogy HD PLA",
"description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.", "description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/", "website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/",
"author": { "author": {
"author_id": "Fiberlogy", "author_id": "Fiberlogy",
@ -1469,7 +1469,7 @@
"display_name": "Filo3D PLA", "display_name": "Filo3D PLA",
"description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.", "description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://dagoma.fr", "website": "https://dagoma.fr",
"author": { "author": {
"author_id": "Dagoma", "author_id": "Dagoma",
@ -1486,7 +1486,7 @@
"display_name": "IMADE3D JellyBOX PETG", "display_name": "IMADE3D JellyBOX PETG",
"description": "", "description": "",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://shop.imade3d.com/filament.html", "website": "http://shop.imade3d.com/filament.html",
"author": { "author": {
"author_id": "IMADE3D", "author_id": "IMADE3D",
@ -1503,7 +1503,7 @@
"display_name": "IMADE3D JellyBOX PLA", "display_name": "IMADE3D JellyBOX PLA",
"description": "", "description": "",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://shop.imade3d.com/filament.html", "website": "http://shop.imade3d.com/filament.html",
"author": { "author": {
"author_id": "IMADE3D", "author_id": "IMADE3D",
@ -1520,7 +1520,7 @@
"display_name": "Octofiber PLA", "display_name": "Octofiber PLA",
"description": "PLA material from Octofiber.", "description": "PLA material from Octofiber.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://nl.octofiber.com/3d-printing-filament/pla.html", "website": "https://nl.octofiber.com/3d-printing-filament/pla.html",
"author": { "author": {
"author_id": "Octofiber", "author_id": "Octofiber",
@ -1537,7 +1537,7 @@
"display_name": "PolyFlex™ PLA", "display_name": "PolyFlex™ PLA",
"description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.", "description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://www.polymaker.com/shop/polyflex/", "website": "http://www.polymaker.com/shop/polyflex/",
"author": { "author": {
"author_id": "Polymaker", "author_id": "Polymaker",
@ -1554,7 +1554,7 @@
"display_name": "PolyMax™ PLA", "display_name": "PolyMax™ PLA",
"description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.", "description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://www.polymaker.com/shop/polymax/", "website": "http://www.polymaker.com/shop/polymax/",
"author": { "author": {
"author_id": "Polymaker", "author_id": "Polymaker",
@ -1571,7 +1571,7 @@
"display_name": "PolyPlus™ PLA True Colour", "display_name": "PolyPlus™ PLA True Colour",
"description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.", "description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://www.polymaker.com/shop/polyplus-true-colour/", "website": "http://www.polymaker.com/shop/polyplus-true-colour/",
"author": { "author": {
"author_id": "Polymaker", "author_id": "Polymaker",
@ -1588,7 +1588,7 @@
"display_name": "PolyWood™ PLA", "display_name": "PolyWood™ PLA",
"description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.", "description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.",
"package_version": "1.0.1", "package_version": "1.0.1",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "http://www.polymaker.com/shop/polywood/", "website": "http://www.polymaker.com/shop/polywood/",
"author": { "author": {
"author_id": "Polymaker", "author_id": "Polymaker",
@ -1605,7 +1605,7 @@
"display_name": "Ultimaker ABS", "display_name": "Ultimaker ABS",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1624,7 +1624,7 @@
"display_name": "Ultimaker Breakaway", "display_name": "Ultimaker Breakaway",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/breakaway", "website": "https://ultimaker.com/products/materials/breakaway",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1643,7 +1643,7 @@
"display_name": "Ultimaker CPE", "display_name": "Ultimaker CPE",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1662,7 +1662,7 @@
"display_name": "Ultimaker CPE+", "display_name": "Ultimaker CPE+",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/cpe", "website": "https://ultimaker.com/products/materials/cpe",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1681,7 +1681,7 @@
"display_name": "Ultimaker Nylon", "display_name": "Ultimaker Nylon",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1700,7 +1700,7 @@
"display_name": "Ultimaker PC", "display_name": "Ultimaker PC",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/pc", "website": "https://ultimaker.com/products/materials/pc",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1719,7 +1719,7 @@
"display_name": "Ultimaker PLA", "display_name": "Ultimaker PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1738,7 +1738,7 @@
"display_name": "Ultimaker PP", "display_name": "Ultimaker PP",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/pp", "website": "https://ultimaker.com/products/materials/pp",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1757,7 +1757,7 @@
"display_name": "Ultimaker PVA", "display_name": "Ultimaker PVA",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1776,7 +1776,7 @@
"display_name": "Ultimaker TPU 95A", "display_name": "Ultimaker TPU 95A",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/tpu-95a", "website": "https://ultimaker.com/products/materials/tpu-95a",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1795,7 +1795,7 @@
"display_name": "Ultimaker Tough PLA", "display_name": "Ultimaker Tough PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://ultimaker.com/products/materials/tough-pla", "website": "https://ultimaker.com/products/materials/tough-pla",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
@ -1814,7 +1814,7 @@
"display_name": "Vertex Delta ABS", "display_name": "Vertex Delta ABS",
"description": "ABS material and quality files for the Delta Vertex K8800.", "description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://vertex3dprinter.eu", "website": "https://vertex3dprinter.eu",
"author": { "author": {
"author_id": "Velleman", "author_id": "Velleman",
@ -1831,7 +1831,7 @@
"display_name": "Vertex Delta PET", "display_name": "Vertex Delta PET",
"description": "ABS material and quality files for the Delta Vertex K8800.", "description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://vertex3dprinter.eu", "website": "https://vertex3dprinter.eu",
"author": { "author": {
"author_id": "Velleman", "author_id": "Velleman",
@ -1848,7 +1848,7 @@
"display_name": "Vertex Delta PLA", "display_name": "Vertex Delta PLA",
"description": "ABS material and quality files for the Delta Vertex K8800.", "description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://vertex3dprinter.eu", "website": "https://vertex3dprinter.eu",
"author": { "author": {
"author_id": "Velleman", "author_id": "Velleman",
@ -1865,7 +1865,7 @@
"display_name": "Vertex Delta TPU", "display_name": "Vertex Delta TPU",
"description": "ABS material and quality files for the Delta Vertex K8800.", "description": "ABS material and quality files for the Delta Vertex K8800.",
"package_version": "1.4.0", "package_version": "1.4.0",
"sdk_version": "8.1.0", "sdk_version": "8.2.0",
"website": "https://vertex3dprinter.eu", "website": "https://vertex3dprinter.eu",
"author": { "author": {
"author_id": "Velleman", "author_id": "Velleman",

View File

@ -2989,7 +2989,7 @@
"wall_x_material_flow_layer_0": "wall_x_material_flow_layer_0":
{ {
"label": "Initial Layer Inner Wall Flow", "label": "Initial Layer Inner Wall Flow",
"description": "Flow compensation on the outermost wall line of the first layer.", "description": "Flow compensation on wall lines for all wall lines except the outermost one, but only for the first layer",
"unit": "%", "unit": "%",
"type": "float", "type": "float",
"default_value": 100, "default_value": 100,
@ -4614,42 +4614,6 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"support_conical_enabled": {
"label": "Enable Conical Support",
"description": "Make support areas smaller at the bottom than at the overhang.",
"type": "bool",
"default_value": false,
"enabled": "support_enable and support_structure != 'tree'",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_conical_angle": {
"label": "Conical Support Angle",
"description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.",
"unit": "°",
"type": "float",
"minimum_value": "-90",
"minimum_value_warning": "-45",
"maximum_value_warning": "45",
"maximum_value": "90",
"default_value": 30,
"enabled": "support_conical_enabled and support_enable and support_structure != 'tree'",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_conical_min_width": {
"label": "Conical Support Minimum Width",
"description": "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures.",
"unit": "mm",
"default_value": 5.0,
"minimum_value": "0",
"minimum_value_warning": "machine_nozzle_size * 3",
"maximum_value_warning": "100.0",
"type": "float",
"enabled": "support_conical_enabled and support_enable and support_structure != 'tree' and support_conical_angle > 0",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_type": "support_type":
{ {
"label": "Support Placement", "label": "Support Placement",
@ -7034,6 +6998,45 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"support_conical_enabled":
{
"label": "Enable Conical Support",
"description": "Make support areas smaller at the bottom than at the overhang.",
"type": "bool",
"default_value": false,
"enabled": "support_enable and support_structure != 'tree'",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_conical_angle":
{
"label": "Conical Support Angle",
"description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.",
"unit": "°",
"type": "float",
"minimum_value": "-90",
"minimum_value_warning": "-45",
"maximum_value_warning": "45",
"maximum_value": "90",
"default_value": 30,
"enabled": "support_conical_enabled and support_enable and support_structure != 'tree'",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"support_conical_min_width":
{
"label": "Conical Support Minimum Width",
"description": "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures.",
"unit": "mm",
"default_value": 5.0,
"minimum_value": "0",
"minimum_value_warning": "machine_nozzle_size * 3",
"maximum_value_warning": "100.0",
"type": "float",
"enabled": "support_conical_enabled and support_enable and support_structure != 'tree' and support_conical_angle > 0",
"limit_to_extruder": "support_infill_extruder_nr",
"settable_per_mesh": true
},
"magic_fuzzy_skin_enabled": "magic_fuzzy_skin_enabled":
{ {
"label": "Fuzzy Skin", "label": "Fuzzy Skin",
@ -8069,7 +8072,7 @@
"label": "Remove Raft Inside Corners", "label": "Remove Raft Inside Corners",
"description": "Remove inside corners from the raft, causing the raft to become convex.", "description": "Remove inside corners from the raft, causing the raft to become convex.",
"type": "bool", "type": "bool",
"default_value": true, "default_value": false,
"resolve": "any(extruderValues('raft_remove_inside_corners'))", "resolve": "any(extruderValues('raft_remove_inside_corners'))",
"enabled": "resolveOrValue('adhesion_type') == 'raft'", "enabled": "resolveOrValue('adhesion_type') == 'raft'",
"settable_per_mesh": false, "settable_per_mesh": false,

View File

@ -106,7 +106,7 @@
"support_type": {"value": "'everywhere'" }, "support_type": {"value": "'everywhere'" },
"support_angle": {"value": "50"}, "support_angle": {"value": "50"},
"support_pattern": {"value": "'grid'"}, "support_pattern": {"value": "'grid'"},
"support_wall_count": {"value": 0}, "support_wall_count": {"value": "1 if (support_structure == 'tree') else 0" },
"zig_zaggify_support": {"value": false }, "zig_zaggify_support": {"value": false },
"support_infill_rate": {"value": "15 if support_enable else 0"}, "support_infill_rate": {"value": "15 if support_enable else 0"},
"support_brim_enable": {"value": true }, "support_brim_enable": {"value": true },

View File

@ -130,7 +130,7 @@
"support_xy_distance_overhang": { "value": "wall_line_width_0" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"support_xy_overrides_z": { "value": "'xy_overrides_z'" }, "support_xy_overrides_z": { "value": "'xy_overrides_z'" },
"support_wall_count": { "value": 0 }, "support_wall_count": {"value": "1 if (support_structure == 'tree') else 0" },
"support_brim_enable": { "value": true }, "support_brim_enable": { "value": true },
"support_brim_width": { "value": 4 }, "support_brim_width": { "value": 4 },
"support_interface_height": { "value": "layer_height * 4" }, "support_interface_height": { "value": "layer_height * 4" },

View File

@ -93,7 +93,7 @@
"support_xy_distance_overhang": { "value": "wall_line_width_0" }, "support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" }, "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"support_xy_overrides_z": { "value": "'xy_overrides_z'" }, "support_xy_overrides_z": { "value": "'xy_overrides_z'" },
"support_wall_count": { "value": 0 }, "support_wall_count": {"value": "1 if (support_structure == 'tree') else 0" },
"support_brim_enable": { "value": true }, "support_brim_enable": { "value": true },
"support_brim_width": { "value": 5 }, "support_brim_width": { "value": 5 },

View File

@ -292,15 +292,6 @@
}, },
"support_z_distance": { "support_z_distance": {
"value": "0" "value": "0"
},
"support_conical_enabled": {
"value": true
},
"support_conical_min_width": {
"value": 10
},
"top_bottom_pattern": {
"value": "'zigzag'"
} }
} }
} }

View File

@ -11,6 +11,7 @@ quality_type = verydraft
material = generic_pla material = generic_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 4000 acceleration_print = 4000
acceleration_wall = 2000 acceleration_wall = 2000

View File

@ -11,6 +11,7 @@ quality_type = verydraft
material = generic_tough_pla material = generic_tough_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 4000 acceleration_print = 4000
acceleration_wall = 2000 acceleration_wall = 2000

View File

@ -11,6 +11,7 @@ quality_type = verydraft
material = generic_pla material = generic_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 4000 acceleration_print = 4000
acceleration_wall = 2000 acceleration_wall = 2000

View File

@ -11,6 +11,7 @@ quality_type = verydraft
material = generic_tough_pla material = generic_tough_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 4000 acceleration_print = 4000
acceleration_wall = 2000 acceleration_wall = 2000

View File

@ -11,7 +11,7 @@ import Cura 1.0 as Cura
UM.Dialog UM.Dialog
{ {
property var manager property var manager
property var compatible_machine_model: Cura.CompatibleMachineModel {}
id: base id: base
title: catalog.i18nc("@title:window", "Select Printer") title: catalog.i18nc("@title:window", "Select Printer")
@ -53,19 +53,39 @@ UM.Dialog
anchors.left: parent.left anchors.left: parent.left
text: catalog.i18nc("@title:label", "Compatible Printers") text: catalog.i18nc("@title:label", "Compatible Printers")
font: UM.Theme.getFont("large") font: UM.Theme.getFont("large")
anchors.horizontalCenter: parent.horizontalCenter
} }
TabButton
UM.SimpleButton
{ {
id: refreshButton
anchors.right: parent.right anchors.right: parent.right
width: UM.Theme.getSize("button_icon").width
height: UM.Theme.getSize("button_icon").height
hoverEnabled: true
width: UM.Theme.getSize("small_button").width onClicked:
height: UM.Theme.getSize("small_button").height {
iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight") manager.refresh()
color: UM.Theme.getColor("text_link") base.compatible_machine_model.forceUpdate()
hoverColor: UM.Theme.getColor("text_scene_hover") }
onClicked: manager.refresh() background: Rectangle
{
width: UM.Theme.getSize("button_icon").width
height: UM.Theme.getSize("button_icon").height
color: refreshButton.hovered ? UM.Theme.getColor("toolbar_button_hover") : UM.Theme.getColor("toolbar_background")
radius: Math.round(refreshButton.width * 0.5)
}
UM.ColorImage
{
width: UM.Theme.getSize("section_icon").width
height: UM.Theme.getSize("section_icon").height
color: UM.Theme.getColor("text_link")
source: UM.Theme.getIcon("ArrowDoubleCircleRight")
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
}
} }
} }
@ -73,7 +93,7 @@ UM.Dialog
{ {
id: contents id: contents
model: Cura.CompatibleMachineModel {} model: base.compatible_machine_model
delegate: Cura.PrintSelectorCard delegate: Cura.PrintSelectorCard
{ {

View File

@ -40,7 +40,7 @@ Item
UM.TabRow UM.TabRow
{ {
id: tabBar id: tabBar
anchors.top: printerTypeSelectorRow.bottom anchors.top: header.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
visible: extrudersModel.count > 1 visible: extrudersModel.count > 1

View File

@ -67,16 +67,21 @@ UM.ManagementPage
{ {
width: Math.round(childrenRect.width + 2 * screenScaleFactor) width: Math.round(childrenRect.width + 2 * screenScaleFactor)
height: childrenRect.height height: childrenRect.height
visible: machineActionRepeater.model[index].visible
Cura.SecondaryButton Cura.SecondaryButton
{ {
text: machineActionRepeater.model[index].label text: machineActionRepeater.model[index].label
onClicked: onClicked:
{ {
var currentItem = machineActionRepeater.model[index] var currentItem = machineActionRepeater.model[index]
actionDialog.loader.manager = currentItem if (currentItem.shouldOpenAsDialog) {
actionDialog.loader.source = currentItem.qmlPath actionDialog.loader.manager = currentItem
actionDialog.title = currentItem.label actionDialog.loader.source = currentItem.qmlPath
actionDialog.show() actionDialog.title = currentItem.label
actionDialog.show()
} else {
currentItem.execute()
}
} }
} }
} }

View File

@ -32,7 +32,7 @@ Item
{ {
profileName: model.name profileName: model.name
icon: model.icon icon: model.icon
tooltipText: model.description ? model.description : ""
selected: Cura.MachineManager.activeIntentCategory == model.intent_category selected: Cura.MachineManager.activeIntentCategory == model.intent_category

View File

@ -19,6 +19,7 @@ Rectangle
property bool selected: false property bool selected: false
property string profileName: "" property string profileName: ""
property string icon: "" property string icon: ""
property alias tooltipText: tooltip.text
signal clicked() signal clicked()
@ -30,6 +31,14 @@ Rectangle
onClicked: base.clicked() onClicked: base.clicked()
} }
UM.ToolTip
{
id: tooltip
visible: mouseArea.containsMouse
targetPoint: Qt.point(base.x + (base.width / 2), base.y + (base.height / 2))
width: UM.Theme.getSize("tooltip").width
}
Item Item
{ {
width: intentIcon.width width: intentIcon.width

View File

@ -15,6 +15,7 @@ Rectangle
property var extruders property var extruders
property var manager property var manager
width: parent.width width: parent.width
height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height
@ -35,7 +36,7 @@ Rectangle
Layout.preferredWidth: parent.width / 3 Layout.preferredWidth: parent.width / 3
Layout.fillWidth: true Layout.fillWidth: true
Layout.alignment: Qt.AlignTop Layout.alignment: extruders[0].materials.length > 1 ? Qt.AlignTop: Qt.AlignCenter
Layout.fillHeight: false Layout.fillHeight: false
source: UM.Theme.getIcon("Printer") source: UM.Theme.getIcon("Printer")
@ -50,7 +51,7 @@ Rectangle
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredWidth: parent.width / 2 Layout.preferredWidth: parent.width / 2
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop
spacing: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("narrow_margin").width
Repeater Repeater
{ {
@ -58,6 +59,7 @@ Rectangle
Item Item
{ {
Layout.preferredWidth: extruderInformation.width
height: childrenRect.height height: childrenRect.height
Cura.ExtruderIcon Cura.ExtruderIcon
@ -83,12 +85,12 @@ Rectangle
{ {
id: singleMaterialText id: singleMaterialText
anchors.left: extruderCore.right anchors.left: extruderCore.right
anchors.right: parent.right
anchors.verticalCenter: extruderCore.verticalCenter anchors.verticalCenter: extruderCore.verticalCenter
anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.leftMargin: UM.Theme.getSize("default_margin").width
text: modelData.materials.length == 1 ? `${modelData.materials[0].brand} ${modelData.materials[0].name}` : "" text: modelData.materials.length == 1 ? `${modelData.materials[0].brand} ${modelData.materials[0].name}` : ""
visible: modelData.materials.length == 1 visible: modelData.materials.length == 1
} }
ColumnLayout ColumnLayout
{ {
id: multiMaterialText id: multiMaterialText
@ -98,7 +100,7 @@ Rectangle
visible: modelData.materials.length > 1 visible: modelData.materials.length > 1
Repeater Repeater
{ {
model: modelData.materials model: modelData.materials.length > 1 ? modelData.materials: null
UM.Label UM.Label
{ {
text: `${modelData.brand} ${modelData.name}` text: `${modelData.brand} ${modelData.name}`
@ -113,9 +115,9 @@ Rectangle
{ {
id: printButton id: printButton
implicitWidth: UM.Theme.getSize("medium_button").width implicitWidth: UM.Theme.getSize("large_button").width
implicitHeight: implicitWidth implicitHeight: implicitWidth
Layout.alignment: Qt.AlignTop Layout.alignment: extruders[0].materials.length > 1 ? Qt.AlignTop: Qt.AlignCenter
padding: 0 padding: 0
background: Rectangle background: Rectangle
@ -132,7 +134,7 @@ Rectangle
anchors.centerIn: parent anchors.centerIn: parent
source: UM.Theme.getIcon("Printer") source: UM.Theme.getIcon("Printer")
color: UM.Theme.getColor("border_accent_1") color: UM.Theme.getColor("border_accent_1")
width: UM.Theme.getSize("small_button_icon").width width: UM.Theme.getSize("medium_button_icon").width
height: width height: width
} }
} }

View File

@ -11,6 +11,7 @@ weight = 0
material = generic_pc material = generic_pc
variant = AA 0.25 variant = AA 0.25
is_experimental = True is_experimental = True
[values] [values]
brim_width = 20 brim_width = 20
cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_full_at_height = =layer_height_0 + layer_height

View File

@ -19,8 +19,8 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
machine_nozzle_cool_down_speed = 0.9 machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4 machine_nozzle_heat_up_speed = 1.4
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = 190 material_print_temperature = 190
retraction_hop = 0.2 retraction_hop = 0.2
skin_overlap = 5 skin_overlap = 5

View File

@ -11,6 +11,7 @@ weight = 0
material = generic_pp material = generic_pp
variant = AA 0.25 variant = AA 0.25
is_experimental = True is_experimental = True
[values] [values]
brim_width = 10 brim_width = 10
cool_fan_speed_max = 100 cool_fan_speed_max = 100

View File

@ -19,8 +19,8 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
machine_nozzle_cool_down_speed = 0.9 machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4 machine_nozzle_heat_up_speed = 1.4
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature - 15 material_print_temperature = =default_material_print_temperature - 15
skin_overlap = 5 skin_overlap = 5
speed_layer_0 = =math.ceil(speed_print * 30 / 30) speed_layer_0 = =math.ceil(speed_print * 30 / 30)

View File

@ -26,7 +26,7 @@ speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
support_angle = 45 support_angle = 45
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_enable = True support_interface_enable = True
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height

View File

@ -24,7 +24,7 @@ speed_layer_0 = =math.ceil(speed_print * 20 / 70)
support_angle = 45 support_angle = 45
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_enable = True support_interface_enable = True
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_bam material = generic_bam
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
brim_replaces_support = False brim_replaces_support = False
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_pla material = generic_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 2000 acceleration_print = 2000
acceleration_topbottom = 1000 acceleration_topbottom = 1000

View File

@ -18,7 +18,7 @@ cool_min_speed = 7
layer_height_0 = 0.2 layer_height_0 = 0.2
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature - 10
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20

View File

@ -17,7 +17,7 @@ cool_fan_speed_max = =cool_fan_speed
layer_height_0 = 0.2 layer_height_0 = 0.2
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature - 10
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 20 / 45) speed_layer_0 = =math.ceil(speed_print * 20 / 45)

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_tough_pla material = generic_tough_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 2000 acceleration_print = 2000
acceleration_topbottom = 1000 acceleration_topbottom = 1000

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 14 * layer_height cool_fan_full_at_height = =layer_height_0 + 14 * layer_height

View File

@ -11,6 +11,7 @@ weight = -4
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 7 * layer_height cool_fan_full_at_height = =layer_height_0 + 7 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 9 * layer_height cool_fan_full_at_height = =layer_height_0 + 9 * layer_height

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 14 * layer_height cool_fan_full_at_height = =layer_height_0 + 14 * layer_height

View File

@ -11,6 +11,7 @@ weight = -4
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 7 * layer_height cool_fan_full_at_height = =layer_height_0 + 7 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 9 * layer_height cool_fan_full_at_height = =layer_height_0 + 9 * layer_height

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 15 material_print_temperature = =default_material_print_temperature + 15
prime_tower_enable = True prime_tower_enable = True
speed_infill = =math.ceil(speed_print * 35 / 45) speed_infill = =math.ceil(speed_print * 35 / 45)

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -20,8 +20,8 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 0 material_print_temperature = =default_material_print_temperature + 0
prime_tower_enable = False prime_tower_enable = False
speed_print = 45 speed_print = 45

View File

@ -20,14 +20,14 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
prime_tower_enable = False prime_tower_enable = False
speed_infill = =math.ceil(speed_print * 30 / 30) speed_infill = =math.ceil(speed_print * 30 / 30)
speed_print = 30 speed_print = 30
speed_topbottom = =math.ceil(speed_print * 20 / 30) speed_topbottom = =math.ceil(speed_print * 20 / 30)
speed_wall = =math.ceil(speed_print * 25/ 30) speed_wall = =math.ceil(speed_print * 25 / 30)
speed_wall_0 = =math.ceil(speed_print * 20 / 30) speed_wall_0 = =math.ceil(speed_print * 20 / 30)
support_angle = 70 support_angle = 70
top_bottom_thickness = =layer_height * 4 top_bottom_thickness = =layer_height * 4

View File

@ -20,15 +20,15 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
material_print_temperature_layer_0 = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature
prime_tower_enable = False prime_tower_enable = False
speed_infill = =math.ceil(speed_print * 30 / 35) speed_infill = =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)
speed_wall = =math.ceil(speed_print * 25/ 35) speed_wall = =math.ceil(speed_print * 25 / 35)
speed_wall_0 = =math.ceil(speed_print * 20 / 35) speed_wall_0 = =math.ceil(speed_print * 20 / 35)
support_angle = 70 support_angle = 70
top_bottom_thickness = =layer_height * 4 top_bottom_thickness = =layer_height * 4

View File

@ -18,7 +18,7 @@ material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skin_overlap = 20 skin_overlap = 20
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -18,8 +18,8 @@ material_print_temperature = =default_material_print_temperature + 5
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skin_overlap = 15 skin_overlap = 15
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -16,8 +16,8 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =3*layer_height support_infill_sparse_thickness = =3 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -16,8 +16,8 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -11,11 +11,12 @@ weight = -3
material = generic_pva material = generic_pva
variant = BB 0.4 variant = BB 0.4
is_experimental = True is_experimental = True
[values] [values]
brim_replaces_support = False brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = 0.3 support_infill_sparse_thickness = 0.3
support_interface_enable = True support_interface_enable = True

View File

@ -16,7 +16,7 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -15,7 +15,7 @@ variant = BB 0.8
brim_replaces_support = False brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -15,7 +15,7 @@ variant = BB 0.8
brim_replaces_support = False brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = 0.3 support_infill_sparse_thickness = 0.3
support_interface_enable = True support_interface_enable = True

View File

@ -11,6 +11,7 @@ weight = -2
material = generic_pla material = generic_pla
variant = CC 0.4 variant = CC 0.4
is_experimental = True is_experimental = True
[values] [values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =100 cool_fan_speed_max = =100
@ -19,8 +20,8 @@ gradual_infill_step_height = =3 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_pla material = generic_pla
variant = CC 0.4 variant = CC 0.4
is_experimental = True is_experimental = True
[values] [values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =100 cool_fan_speed_max = =100
@ -19,8 +20,8 @@ gradual_infill_step_height = =3 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -11,6 +11,7 @@ weight = -2
material = generic_pla material = generic_pla
variant = CC 0.6 variant = CC 0.6
is_experimental = True is_experimental = True
[values] [values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =100 cool_fan_speed_max = =100
@ -19,8 +20,8 @@ gradual_infill_step_height = =3 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_pla material = generic_pla
variant = CC 0.6 variant = CC 0.6
is_experimental = True is_experimental = True
[values] [values]
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
cool_fan_speed_max = =100 cool_fan_speed_max = =100
@ -19,8 +20,8 @@ gradual_infill_step_height = =3 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -11,6 +11,7 @@ weight = 0
material = generic_pc material = generic_pc
variant = AA 0.25 variant = AA 0.25
is_experimental = True is_experimental = True
[values] [values]
brim_width = 20 brim_width = 20
cool_fan_full_at_height = =layer_height_0 + layer_height cool_fan_full_at_height = =layer_height_0 + layer_height

View File

@ -19,8 +19,8 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
machine_nozzle_cool_down_speed = 0.9 machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4 machine_nozzle_heat_up_speed = 1.4
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = 190 material_print_temperature = 190
retraction_hop = 0.2 retraction_hop = 0.2
skin_overlap = 5 skin_overlap = 5

View File

@ -11,6 +11,7 @@ weight = 0
material = generic_pp material = generic_pp
variant = AA 0.25 variant = AA 0.25
is_experimental = True is_experimental = True
[values] [values]
brim_width = 10 brim_width = 10
cool_fan_speed_max = 100 cool_fan_speed_max = 100

View File

@ -19,8 +19,8 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid' infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
machine_nozzle_cool_down_speed = 0.9 machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4 machine_nozzle_heat_up_speed = 1.4
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature - 15 material_print_temperature = =default_material_print_temperature - 15
skin_overlap = 5 skin_overlap = 5
speed_layer_0 = =math.ceil(speed_print * 30 / 30) speed_layer_0 = =math.ceil(speed_print * 30 / 30)

View File

@ -26,7 +26,7 @@ speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
support_angle = 45 support_angle = 45
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_enable = True support_interface_enable = True
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height

View File

@ -24,7 +24,7 @@ speed_layer_0 = =math.ceil(speed_print * 20 / 70)
support_angle = 45 support_angle = 45
support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_density = =min(extruderValues('material_surface_energy'))
support_interface_enable = True support_interface_enable = True
support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_bam material = generic_bam
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
brim_replaces_support = False brim_replaces_support = False
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height cool_fan_full_at_height = =layer_height_0 + 2 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_pla material = generic_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 2000 acceleration_print = 2000
acceleration_topbottom = 1000 acceleration_topbottom = 1000

View File

@ -18,7 +18,7 @@ cool_min_speed = 7
layer_height_0 = 0.2 layer_height_0 = 0.2
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature - 10
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed retraction_prime_speed = =retraction_speed
skin_overlap = 20 skin_overlap = 20

View File

@ -17,7 +17,7 @@ cool_fan_speed_max = =cool_fan_speed
layer_height_0 = 0.2 layer_height_0 = 0.2
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_print_temperature = =default_material_print_temperature -10 material_print_temperature = =default_material_print_temperature - 10
prime_tower_enable = False prime_tower_enable = False
retraction_prime_speed = =retraction_speed retraction_prime_speed = =retraction_speed
speed_layer_0 = =math.ceil(speed_print * 20 / 45) speed_layer_0 = =math.ceil(speed_print * 20 / 45)

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_tough_pla material = generic_tough_pla
variant = AA 0.4 variant = AA 0.4
is_experimental = True is_experimental = True
[values] [values]
acceleration_print = 2000 acceleration_print = 2000
acceleration_topbottom = 1000 acceleration_topbottom = 1000

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 14 * layer_height cool_fan_full_at_height = =layer_height_0 + 14 * layer_height

View File

@ -11,6 +11,7 @@ weight = -4
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 7 * layer_height cool_fan_full_at_height = =layer_height_0 + 7 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_cpe_plus material = generic_cpe_plus
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 9 * layer_height cool_fan_full_at_height = =layer_height_0 + 9 * layer_height

View File

@ -11,6 +11,7 @@ weight = -1
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 14 * layer_height cool_fan_full_at_height = =layer_height_0 + 14 * layer_height

View File

@ -11,6 +11,7 @@ weight = -4
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 7 * layer_height cool_fan_full_at_height = =layer_height_0 + 7 * layer_height

View File

@ -11,6 +11,7 @@ weight = -3
material = generic_pc material = generic_pc
variant = AA 0.8 variant = AA 0.8
is_experimental = True is_experimental = True
[values] [values]
brim_width = 14 brim_width = 14
cool_fan_full_at_height = =layer_height_0 + 9 * layer_height cool_fan_full_at_height = =layer_height_0 + 9 * layer_height

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 15 material_print_temperature = =default_material_print_temperature + 15
prime_tower_enable = True prime_tower_enable = True
speed_infill = =math.ceil(speed_print * 35 / 45) speed_infill = =math.ceil(speed_print * 35 / 45)

View File

@ -19,8 +19,8 @@ gradual_infill_step_height = =3 * layer_height
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10 material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = True prime_tower_enable = True
speed_print = 45 speed_print = 45

View File

@ -20,8 +20,8 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 0 material_print_temperature = =default_material_print_temperature + 0
prime_tower_enable = False prime_tower_enable = False
speed_print = 45 speed_print = 45

View File

@ -20,14 +20,14 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
prime_tower_enable = False prime_tower_enable = False
speed_infill = =math.ceil(speed_print * 30 / 30) speed_infill = =math.ceil(speed_print * 30 / 30)
speed_print = 30 speed_print = 30
speed_topbottom = =math.ceil(speed_print * 20 / 30) speed_topbottom = =math.ceil(speed_print * 20 / 30)
speed_wall = =math.ceil(speed_print * 25/ 30) speed_wall = =math.ceil(speed_print * 25 / 30)
speed_wall_0 = =math.ceil(speed_print * 20 / 30) speed_wall_0 = =math.ceil(speed_print * 20 / 30)
support_angle = 70 support_angle = 70
top_bottom_thickness = =layer_height * 4 top_bottom_thickness = =layer_height * 4

View File

@ -20,15 +20,15 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
layer_height_0 = 0.4 layer_height_0 = 0.4
machine_nozzle_cool_down_speed = 0.75 machine_nozzle_cool_down_speed = 0.75
machine_nozzle_heat_up_speed = 1.6 machine_nozzle_heat_up_speed = 1.6
material_final_print_temperature = =max(-273.15, material_print_temperature - 15) material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
material_print_temperature_layer_0 = =material_print_temperature material_print_temperature_layer_0 = =material_print_temperature
prime_tower_enable = False prime_tower_enable = False
speed_infill = =math.ceil(speed_print * 30 / 35) speed_infill = =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)
speed_wall = =math.ceil(speed_print * 25/ 35) speed_wall = =math.ceil(speed_print * 25 / 35)
speed_wall_0 = =math.ceil(speed_print * 20 / 35) speed_wall_0 = =math.ceil(speed_print * 20 / 35)
support_angle = 70 support_angle = 70
top_bottom_thickness = =layer_height * 4 top_bottom_thickness = =layer_height * 4

View File

@ -18,7 +18,7 @@ material_print_temperature = =default_material_print_temperature + 10
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skin_overlap = 20 skin_overlap = 20
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -18,8 +18,8 @@ material_print_temperature = =default_material_print_temperature + 5
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skin_overlap = 15 skin_overlap = 15
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -16,8 +16,8 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =3*layer_height support_infill_sparse_thickness = =3 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -16,8 +16,8 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = =2*layer_height support_infill_sparse_thickness = =2 * layer_height
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -11,12 +11,13 @@ weight = -3
material = generic_pva material = generic_pva
variant = BB 0.4 variant = BB 0.4
is_experimental = True is_experimental = True
[values] [values]
brim_replaces_support = False brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
prime_tower_enable = False prime_tower_enable = False
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_infill_sparse_thickness = 0.3 support_infill_sparse_thickness = 0.3
support_interface_enable = True support_interface_enable = True

View File

@ -16,7 +16,7 @@ brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
material_print_temperature = =default_material_print_temperature + 5 material_print_temperature = =default_material_print_temperature + 5
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

View File

@ -15,7 +15,7 @@ variant = BB 0.8
brim_replaces_support = False brim_replaces_support = False
cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr)) cool_fan_enabled = =not (support_enable and (extruder_nr == support_infill_extruder_nr))
retraction_count_max = 5 retraction_count_max = 5
skirt_brim_minimal_length = =min(2000, 175/(layer_height*line_width)) skirt_brim_minimal_length = =min(2000, 175 / (layer_height * line_width))
support_brim_enable = True support_brim_enable = True
support_interface_enable = True support_interface_enable = True
support_use_towers = True support_use_towers = True

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