Merge branch 'main' into CURA-9793_extend_recommended_print_settings

This commit is contained in:
Joey de l'Arago 2022-12-05 11:39:51 +01:00
commit 0738f996d0
409 changed files with 44013 additions and 3888 deletions

View file

@ -212,38 +212,38 @@ jobs:
cp openssl/lib/*.lib ./cura_inst/Lib/ cp openssl/lib/*.lib ./cura_inst/Lib/
- name: Create the Cura dist - name: Create the Cura dist
run: pyinstaller ./cura_inst/Ultimaker-Cura.spec run: pyinstaller ./cura_inst/UltiMaker-Cura.spec
- name: Archive the artifacts (bash) - name: Archive the artifacts (bash)
if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }} if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }}
run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.tar.gz" "./Ultimaker-Cura/" run: tar -zcf "./UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.tar.gz" "./UltiMaker-Cura/"
working-directory: dist working-directory: dist
- name: Archive the artifacts (Powershell) - name: Archive the artifacts (Powershell)
if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }} if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }}
run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.zip" run: Compress-Archive -Path ".\UltiMaker-Cura" -DestinationPath ".\UltiMaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.zip"
working-directory: dist working-directory: dist
- name: Create the Windows exe installer (Powershell) - name: Create the Windows exe installer (Powershell)
if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }} if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }}
run: | run: |
python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.exe" python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "UltiMaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.exe"
working-directory: dist working-directory: dist
- name: Create the Linux AppImage (Bash) - name: Create the Linux AppImage (Bash)
if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }} if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }}
run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.AppImage" run: python ../cura_inst/packaging/AppImage/create_appimage.py ./UltiMaker-Cura $CURA_VERSION_FULL "UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.AppImage"
working-directory: dist working-directory: dist
- name: Create the MacOS dmg (Bash) - name: Create the MacOS dmg (Bash)
if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }} if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }}
run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.dmg" run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.dmg"
working-directory: dist working-directory: dist
- name: Upload the artifacts - name: Upload the artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }} name: UltiMaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }}
path: | path: |
dist/*.tar.gz dist/*.tar.gz
dist/*.zip dist/*.zip

View file

@ -0,0 +1,46 @@
name: printer-linter-format
on:
push:
branches:
- main
- '[1-9].[0-9]'
- '[1-9].[0-9][0-9]'
path:
- 'resources/**'
jobs:
printer-linter-format:
if: ${{ github.repository_owner == 'Ultimaker' }}
name: Printer linter auto format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python and pip
uses: actions/setup-python@v4
with:
python-version: 3.11.x
cache: 'pip'
cache-dependency-path: .github/workflows/requirements-printer-linter.txt
- uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
resources/+(definitions|extruders)/*.def.json
resources/+(intent|quality|variants)/**/*.inst.cfg
- name: Install Python requirements for runner
if: env.GIT_DIFF && !env.MATCHED_FILES
run: pip install -r .github/workflows/requirements-printer-linter.txt
- name: Format file
if: env.GIT_DIFF && !env.MATCHED_FILES
run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }}
- uses: stefanzweifel/git-auto-commit-action@v4
if: env.GIT_DIFF && !env.MATCHED_FILES
with:
commit_message: "Applied printer-linter format"

View file

@ -0,0 +1,59 @@
name: printer-linter-pr-diagnose
on:
pull_request:
path:
- 'resources/**'
jobs:
printer-linter-diagnose:
name: Printer linter PR diagnose
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup Python and pip
uses: actions/setup-python@v4
with:
python-version: 3.11.x
cache: 'pip'
cache-dependency-path: .github/workflows/requirements-printer-linter.txt
- uses: technote-space/get-diff-action@v6
with:
PATTERNS: |
resources/+(extruders|definitions)/*.def.json
resources/+(intent|quality|variants)/**/*.inst.cfg
- name: Install Python requirements for runner
if: env.GIT_DIFF && !env.MATCHED_FILES
run: pip install -r .github/workflows/requirements-printer-linter.txt
- name: Create results directory
run: mkdir printer-linter-result
- name: Diagnose file(s)
if: env.GIT_DIFF && !env.MATCHED_FILES
run: python printer-linter/src/terminal.py --diagnose --report printer-linter-result/fixes.yml ${{ env.GIT_DIFF_FILTERED }}
- name: Save PR metadata
run: |
echo ${{ github.event.number }} > printer-linter-result/pr-id.txt
echo ${{ github.event.pull_request.head.repo.full_name }} > printer-linter-result/pr-head-repo.txt
echo ${{ github.event.pull_request.head.ref }} > printer-linter-result/pr-head-ref.txt
- uses: actions/upload-artifact@v2
with:
name: printer-linter-result
path: printer-linter-result/
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@fix_suggestions_for_multiline_comments
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: result.yml
request_changes: true

View file

@ -0,0 +1,81 @@
name: printer-linter-pr-post
on:
workflow_run:
workflows: [ "printer-linter-pr-diagnose" ]
types: [ completed ]
jobs:
clang-tidy-results:
# Trigger the job only if the previous (insecure) workflow completed successfully
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Download analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
- name: Set environment variables
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
echo "pr_id=$(cat printer-linter-result/pr-id.txt)" >> $GITHUB_ENV
echo "pr_head_repo=$(cat printer-linter-result/pr-head-repo.txt)" >> $GITHUB_ENV
echo "pr_head_ref=$(cat printer-linter-result/pr-head-ref.txt)" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
repository: ${{ env.pr_head_repo }}
ref: ${{ env.pr_head_ref }}
persist-credentials: false
- name: Redownload analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "printer-linter-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data));
- name: Extract analysis results
run: |
mkdir printer-linter-result
unzip printer-linter-result.zip -d printer-linter-result
- name: Run clang-tidy-pr-comments action
uses: platisd/clang-tidy-pr-comments@fix_suggestions_for_multiline_comments
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
clang_tidy_fixes: printer-linter-result/fixes.yml
pull_request_id: ${{ env.pr_id }}
request_changes: true

View file

@ -0,0 +1,15 @@
name: process-pull-request
on:
pull_request_target:
types: [opened, reopened, edited, synchronize, review_requested, ready_for_review, assigned]
jobs:
add_label:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-ecosystem/action-add-labels@v1
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
with:
labels: 'PR: Community Contribution :crown:'

View file

@ -0,0 +1 @@
pyyaml

82
.github/workflows/unit-test-post.yml vendored Normal file
View file

@ -0,0 +1,82 @@
name: unit-test-post
on:
workflow_run:
workflows: [ "unit-test" ]
types: [ completed ]
jobs:
publish-test-results:
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Download analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "test-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/test-result.zip", Buffer.from(download.data));
- name: Set environment variables
run: |
mkdir pr_env
unzip test-result.zip -d pr_env
echo "pr_id=$(cat pr_env/pr-id.txt)" >> $GITHUB_ENV
echo "pr_head_repo=$(cat pr_env/pr-head-repo.txt)" >> $GITHUB_ENV
echo "pr_head_ref=$(cat pr_env/pr-head-ref.txt)" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
repository: ${{ env.pr_head_repo }}
ref: ${{ env.pr_head_ref }}
persist-credentials: false
- name: Redownload analysis results
uses: actions/github-script@v3.1.0
with:
script: |
let artifacts = await github.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
let matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "test-result"
})[0];
let download = await github.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: "zip",
});
let fs = require("fs");
fs.writeFileSync("${{github.workspace}}/test-result.zip", Buffer.from(download.data));
- name: Extract analysis results
run: |
mkdir -p tests
unzip test-result.zip -d tests
- name: Publish Unit Test Results
id: test-results
uses: EnricoMi/publish-unit-test-result-action@v1
with:
files: "tests/**/*.xml"
- name: Conclusion
run: echo "Conclusion is ${{ fromJSON( steps.test-results.outputs.json ).conclusion }}"

View file

@ -1,6 +1,5 @@
--- ---
name: unit-test name: unit-test
# FIXME: This should be a reusable workflow
on: on:
push: push:
@ -76,6 +75,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup Python and pip - name: Setup Python and pip
uses: actions/setup-python@v4 uses: actions/setup-python@v4
@ -136,45 +137,21 @@ jobs:
pytest --junitxml=junit_cura.xml pytest --junitxml=junit_cura.xml
working-directory: tests working-directory: tests
- name: Save PR metadata
if: always()
run: |
echo ${{ github.event.number }} > pr-id.txt
echo ${{ github.event.pull_request.head.repo.full_name }} > pr-head-repo.txt
echo ${{ github.event.pull_request.head.ref }} > pr-head-ref.txt
working-directory: tests
- name: Upload Test Results - name: Upload Test Results
if: always() if: always()
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: Test Results name: test-result
path: "tests/**/*.xml" path: |
tests/**/*.xml
publish-test-results: tests/pr-id.txt
permissions: tests/pr-head-repo.txt
contents: read # to fetch code (actions/checkout) tests/pr-head-ref.txt
checks: write
pull-requests: write # to comment on pull request
runs-on: ubuntu-20.04
needs: [ testing ]
if: success() || failure()
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Python and pip
uses: actions/setup-python@v4
with:
python-version: '3.10.x'
architecture: 'x64'
cache: 'pip'
cache-dependency-path: .github/workflows/requirements-conan-package.txt
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Publish Unit Test Results
id: test-results
uses: EnricoMi/publish-unit-test-result-action@v1
with:
files: "artifacts/**/*.xml"
- name: Conclusion
run: echo "Conclusion is ${{ fromJSON( steps.test-results.outputs.json ).conclusion }}"

1
.gitignore vendored
View file

@ -99,3 +99,4 @@ conanbuildinfo.txt
graph_info.json graph_info.json
Ultimaker-Cura.spec Ultimaker-Cura.spec
.run/ .run/
/printer-linter/src/printerlinter.egg-info/

15
.printer-linter Normal file
View file

@ -0,0 +1,15 @@
checks:
diagnostic-mesh-file-extension: true
diagnostic-mesh-file-size: true
diagnostic-definition-redundant-override: true
fixes:
diagnostic-definition-redundant-override: true
format:
format-definition-bracket-newline: true
format-definition-paired-coordinate-array: true
format-definition-sort-keys: true
format-definition-indent: 4
format-definition-single-value-single-line: true # Format dicts and lists with a single item on one line "dict": { "value": 10 }
format-profile-space-around-delimiters: true
format-profile-sort-keys: true
diagnostic-mesh-file-size: 1200000

View file

@ -1,4 +1,4 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
CuraAppName = "{{ cura_app_name }}" CuraAppName = "{{ cura_app_name }}"

View file

@ -16,12 +16,12 @@ required_conan_version = ">=1.52.0"
class CuraConan(ConanFile): class CuraConan(ConanFile):
name = "cura" name = "cura"
license = "LGPL-3.0" license = "LGPL-3.0"
author = "Ultimaker B.V." author = "UltiMaker"
url = "https://github.com/Ultimaker/cura" url = "https://github.com/Ultimaker/cura"
description = "3D printer / slicing GUI built on top of the Uranium framework" description = "3D printer / slicing GUI built on top of the Uranium framework"
topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer") topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer")
build_policy = "missing" build_policy = "missing"
exports = "LICENSE*", "Ultimaker-Cura.spec.jinja", "CuraVersion.py.jinja" exports = "LICENSE*", "UltiMaker-Cura.spec.jinja", "CuraVersion.py.jinja"
settings = "os", "compiler", "build_type", "arch" settings = "os", "compiler", "build_type", "arch"
no_copy_source = True # We won't build so no need to copy sources to the build folder no_copy_source = True # We won't build so no need to copy sources to the build folder
@ -44,7 +44,7 @@ class CuraConan(ConanFile):
"staging": "False", "staging": "False",
"devtools": False, "devtools": False,
"cloud_api_version": "1", "cloud_api_version": "1",
"display_name": "Ultimaker Cura", "display_name": "UltiMaker Cura",
"cura_debug_mode": False, # Not yet implemented "cura_debug_mode": False, # Not yet implemented
"internal": False, "internal": False,
} }
@ -226,13 +226,13 @@ class CuraConan(ConanFile):
# 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")])
with open(Path(__file__).parent.joinpath("Ultimaker-Cura.spec.jinja"), "r") as f: with open(Path(__file__).parent.joinpath("UltiMaker-Cura.spec.jinja"), "r") as f:
pyinstaller = Template(f.read()) pyinstaller = Template(f.read())
version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) version = self.conf_info.get("user.cura:version", default = self.version, check_type = str)
cura_version = Version(version) cura_version = Version(version)
with open(Path(location, "Ultimaker-Cura.spec"), "w") as f: with open(Path(location, "UltiMaker-Cura.spec"), "w") as f:
f.write(pyinstaller.render( f.write(pyinstaller.render(
name = str(self.options.display_name).replace(" ", "-"), name = str(self.options.display_name).replace(" ", "-"),
display_name = self.options.display_name, display_name = self.options.display_name,

View file

@ -1,11 +1,11 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
# --------- # ---------
# General constants used in Cura # General constants used in Cura
# --------- # ---------
DEFAULT_CURA_APP_NAME = "cura" DEFAULT_CURA_APP_NAME = "cura"
DEFAULT_CURA_DISPLAY_NAME = "Ultimaker Cura" DEFAULT_CURA_DISPLAY_NAME = "UltiMaker Cura"
DEFAULT_CURA_VERSION = "dev" DEFAULT_CURA_VERSION = "dev"
DEFAULT_CURA_BUILD_TYPE = "" DEFAULT_CURA_BUILD_TYPE = ""
DEFAULT_CURA_DEBUG_MODE = False DEFAULT_CURA_DEBUG_MODE = False

View file

@ -1,5 +1,5 @@
# Copyright (c) 2019 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import platform import platform
import traceback import traceback
@ -110,7 +110,7 @@ class CrashHandler:
layout = QVBoxLayout(dialog) layout = QVBoxLayout(dialog)
label = QLabel() label = QLabel()
label.setText(catalog.i18nc("@label crash message", """<p><b>Oops, Ultimaker Cura has encountered something that doesn't seem right.</p></b> label.setText(catalog.i18nc("@label crash message", """<p><b>Oops, UltiMaker Cura has encountered something that doesn't seem right.</p></b>
<p>We encountered an unrecoverable error during start up. It was possibly caused by some incorrect configuration files. We suggest to backup and reset your configuration.</p> <p>We encountered an unrecoverable error during start up. It was possibly caused by some incorrect configuration files. We suggest to backup and reset your configuration.</p>
<p>Backups can be found in the configuration folder.</p> <p>Backups can be found in the configuration folder.</p>
<p>Please send us this Crash Report to fix the problem.</p> <p>Please send us this Crash Report to fix the problem.</p>
@ -119,7 +119,7 @@ class CrashHandler:
layout.addWidget(label) layout.addWidget(label)
# "send report" check box and show details # "send report" check box and show details
self._send_report_checkbox = QCheckBox(catalog.i18nc("@action:button", "Send crash report to Ultimaker"), dialog) self._send_report_checkbox = QCheckBox(catalog.i18nc("@action:button", "Send crash report to UltiMaker"), dialog)
self._send_report_checkbox.setChecked(True) self._send_report_checkbox.setChecked(True)
show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog) show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog)

View file

@ -274,7 +274,7 @@ class AuthorizationService:
self._unable_to_get_data_message.show() self._unable_to_get_data_message.show()
else: else:
self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info", self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info",
"Unable to reach the Ultimaker account server."), "Unable to reach the UltiMaker account server."),
title = i18n_catalog.i18nc("@info:title", "Log-in failed"), title = i18n_catalog.i18nc("@info:title", "Log-in failed"),
message_type = Message.MessageType.ERROR) message_type = Message.MessageType.ERROR)
Logger.warning("Unable to get user profile using auth data from preferences.") Logger.warning("Unable to get user profile using auth data from preferences.")

View file

@ -0,0 +1,48 @@
from dataclasses import dataclass
from typing import List
from UM import i18nCatalog
catalog = i18nCatalog("cura")
@dataclass
class ActiveQuality:
""" Represents the active intent+profile combination, contains all information needed to display active quality. """
intent_category: str = "" # Name of the base intent. For example "visual" or "engineering".
intent_name: str = "" # Name of the base intent formatted for display. For Example "Visual" or "Engineering"
profile: str = "" # Name of the base profile. For example "Fine" or "Fast"
custom_profile: str = "" # Name of the custom profile, this is based on profile. For example "MyCoolCustomProfile"
layer_height: float = None # Layer height of quality in mm. For example 0.4
is_experimental: bool = False # If the quality experimental.
def getMainStringParts(self) -> List[str]:
string_parts = []
if self.custom_profile is not None:
string_parts.append(self.custom_profile)
else:
string_parts.append(self.profile)
if self.intent_category != "default":
string_parts.append(self.intent_name)
return string_parts
def getTailStringParts(self) -> List[str]:
string_parts = []
if self.custom_profile is not None:
string_parts.append(self.profile)
if self.intent_category != "default":
string_parts.append(self.intent_name)
if self.layer_height:
string_parts.append(f"{self.layer_height}mm")
if self.is_experimental:
string_parts.append(catalog.i18nc("@label", "Experimental"))
return string_parts
def getStringParts(self) -> List[str]:
return self.getMainStringParts() + self.getTailStringParts()

View file

@ -40,6 +40,7 @@ from cura.Settings.cura_empty_instance_containers import (empty_definition_chang
empty_material_container, empty_quality_container, empty_material_container, empty_quality_container,
empty_quality_changes_container, empty_intent_container) empty_quality_changes_container, empty_intent_container)
from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
from .ActiveQuality import ActiveQuality
from .CuraStackBuilder import CuraStackBuilder from .CuraStackBuilder import CuraStackBuilder
@ -1631,33 +1632,31 @@ class MachineManager(QObject):
# Examples: # Examples:
# - "my_profile - Fine" (only based on a default quality, no intent involved) # - "my_profile - Fine" (only based on a default quality, no intent involved)
# - "my_profile - Engineering - Fine" (based on an intent) # - "my_profile - Engineering - Fine" (based on an intent)
@pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) @pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameMap(self) -> Dict[str, str]: def activeQualityDisplayNameStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap().getStringParts()
@pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameMainStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap().getMainStringParts()
@pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
def activeQualityDisplayNameTailStringParts(self) -> List[str]:
return self.activeQualityDisplayNameMap().getTailStringParts()
def activeQualityDisplayNameMap(self) -> ActiveQuality:
global_stack = self._application.getGlobalContainerStack() global_stack = self._application.getGlobalContainerStack()
if global_stack is None: if global_stack is None:
return {"main": "", return ActiveQuality()
"suffix": ""}
display_name = global_stack.quality.getName() return ActiveQuality(
profile = global_stack.quality.getName(),
intent_category = self.activeIntentCategory intent_category = self.activeIntentCategory,
if intent_category != "default": intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()),
intent_display_name = IntentCategoryModel.translation(intent_category, custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None,
"name", layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None,
intent_category.title()) is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported
display_name = "{intent_name} - {the_rest}".format(intent_name = intent_display_name, )
the_rest = display_name)
main_part = display_name
suffix_part = ""
# Not a custom quality
if global_stack.qualityChanges != empty_quality_changes_container:
main_part = self.activeQualityOrQualityChangesName
suffix_part = display_name
return {"main": main_part,
"suffix": suffix_part}
@pyqtSlot(str) @pyqtSlot(str)
def setIntentByCategory(self, intent_category: str) -> None: def setIntentByCategory(self, intent_category: str) -> None:
@ -1776,7 +1775,9 @@ class MachineManager(QObject):
@pyqtProperty(bool, notify = activeQualityGroupChanged) @pyqtProperty(bool, notify = activeQualityGroupChanged)
def hasNotSupportedQuality(self) -> bool: def hasNotSupportedQuality(self) -> bool:
global_container_stack = self._application.getGlobalContainerStack() global_container_stack = self._application.getGlobalContainerStack()
return (not global_container_stack is None) and global_container_stack.quality == empty_quality_container and global_container_stack.qualityChanges == empty_quality_changes_container return global_container_stack is not None\
and global_container_stack.quality == empty_quality_container \
and global_container_stack.qualityChanges == empty_quality_changes_container
@pyqtProperty(bool, notify = activeQualityGroupChanged) @pyqtProperty(bool, notify = activeQualityGroupChanged)
def isActiveQualityCustom(self) -> bool: def isActiveQualityCustom(self) -> bool:

View file

@ -17,4 +17,4 @@ export OPENSSL_CONF="$scriptdir/openssl.cnf"
# 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 "$@" $scriptdir/UltiMaker-Cura "$@"

View file

@ -1,6 +1,7 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import argparse # Command line arguments parsing and help. import argparse # Command line arguments parsing and help.
from jinja2 import Template from jinja2 import Template
import os # Finding installation directory. import os # Finding installation directory.
@ -71,6 +72,6 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser(description = "Create AppImages of Cura.") parser = argparse.ArgumentParser(description = "Create AppImages of Cura.")
parser.add_argument("dist_path", type=str, help="Path to where PyInstaller installed the distribution of Cura.") parser.add_argument("dist_path", type=str, help="Path to where PyInstaller installed the distribution of Cura.")
parser.add_argument("version", type=str, help="Full version number of Cura (e.g. '5.1.0-beta')") parser.add_argument("version", type=str, help="Full version number of Cura (e.g. '5.1.0-beta')")
parser.add_argument("filename", type = str, help = "Filename of the AppImage (e.g. 'Ultimaker-Cura-5.1.0-beta-Linux-X64.AppImage')") parser.add_argument("filename", type = str, help = "Filename of the AppImage (e.g. 'UltiMaker-Cura-5.1.0-beta-Linux-X64.AppImage')")
args = parser.parse_args() args = parser.parse_args()
build_appimage(args.dist_path, args.version, args.filename) build_appimage(args.dist_path, args.version, args.filename)

View file

@ -3,16 +3,16 @@
<id>com.ultimaker.cura</id> <id>com.ultimaker.cura</id>
<metadata_license>CC0-1.0</metadata_license> <metadata_license>CC0-1.0</metadata_license>
<project_license>LGPL-3.0</project_license> <project_license>LGPL-3.0</project_license>
<name>Ultimaker Cura</name> <name>UltiMaker Cura</name>
<summary>Slicer to prepare your 3D printing projects</summary> <summary>Slicer to prepare your 3D printing projects</summary>
<description> <description>
<p>Ultimaker Cura is a slicer, an application that prepares your model for 3D printing. Optimized, expert-tested profiles for 3D printers and materials mean you can start printing reliably in no time. And with industry-standard software integration, you can streamline your workflow for maximum efficiency.</p> <p>UltiMaker Cura is a slicer, an application that prepares your model for 3D printing. Optimized, expert-tested profiles for 3D printers and materials mean you can start printing reliably in no time. And with industry-standard software integration, you can streamline your workflow for maximum efficiency.</p>
</description> </description>
<url type="homepage">https://ultimaker.com/en/software/ultimaker-cura</url> <url type="homepage">https://ultimaker.com/en/software/ultimaker-cura</url>
<screenshots> <screenshots>
<screenshot type="default"> <screenshot type="default">
<caption>Print preparation screen</caption> <caption>Print preparation screen</caption>
<image>https://raw.githubusercontent.com/Ultimaker/Cura/master/screenshot.png</image> <image>https://raw.githubusercontent.com/Ultimaker/Cura/main/cura-logo.PNG</image>
</screenshot> </screenshot>
</screenshots> </screenshots>
</component> </component>

View file

@ -1,11 +1,11 @@
[Desktop Entry] [Desktop Entry]
Name=Ultimaker Cura Name=UltiMaker Cura
Name[de]=Ultimaker Cura Name[de]=UltiMaker Cura
GenericName=3D Printing Software GenericName=3D Printing Software
GenericName[de]=3D-Druck-Software GenericName[de]=3D-Druck-Software
GenericName[nl]=3D-Print Software GenericName[nl]=3D-Print Software
Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great. Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great.
Exec=Ultimaker-Cura %F Exec=UltiMaker-Cura %F
Icon=cura-icon Icon=cura-icon
Terminal=false Terminal=false
Type=Application Type=Application

View file

@ -1,4 +1,4 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker B.V.
# Cura's build system is released under the terms of the AGPLv3 or higher. # Cura's build system is released under the terms of the AGPLv3 or higher.
!define APP_NAME "{{ app_name }}" !define APP_NAME "{{ app_name }}"
@ -64,7 +64,7 @@ InstallDir "$PROGRAMFILES64\${APP_NAME}"
!ifdef REG_START_MENU !ifdef REG_START_MENU
!define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Ultimaker Cura" !define MUI_STARTMENUPAGE_DEFAULTFOLDER "UltiMaker Cura"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}"
@ -113,8 +113,8 @@ CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE
CreateShortCut "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" CreateShortCut "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe"
!ifdef WEB_SITE !ifdef WEB_SITE
WriteIniStr "$INSTDIR\Ultimaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMS\$SM_Folder\Ultimaker Cura website.lnk" "$INSTDIR\Ultimaker Cura website.url" CreateShortCut "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url"
!endif !endif
!insertmacro MUI_STARTMENU_WRITE_END !insertmacro MUI_STARTMENU_WRITE_END
!endif !endif
@ -125,8 +125,8 @@ CreateShortCut "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP
CreateShortCut "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" CreateShortCut "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe"
!ifdef WEB_SITE !ifdef WEB_SITE
WriteIniStr "$INSTDIR\Ultimaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMS\{{ app_name }}\Ultimaker Cura website.lnk" "$INSTDIR\Ultimaker Cura website.url" CreateShortCut "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url"
!endif !endif
!endif !endif
@ -170,7 +170,7 @@ RmDir /r /REBOOTOK "$INSTDIR"
Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk"
Delete "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" Delete "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk"
!ifdef WEB_SITE !ifdef WEB_SITE
Delete "$SMPROGRAMS\$SM_Folder\Ultimaker Cura website.lnk" Delete "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk"
!endif !endif
RmDir "$SMPROGRAMS\$SM_Folder" RmDir "$SMPROGRAMS\$SM_Folder"
!endif !endif
@ -179,7 +179,7 @@ RmDir "$SMPROGRAMS\$SM_Folder"
Delete "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk" Delete "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk"
Delete "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk" Delete "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk"
!ifdef WEB_SITE !ifdef WEB_SITE
Delete "$SMPROGRAMS\{{ app_name }}\Ultimaker Cura website.lnk" Delete "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk"
!endif !endif
RmDir "$SMPROGRAMS\{{ app_name }}" RmDir "$SMPROGRAMS\{{ app_name }}"
!endif !endif

View file

@ -1,5 +1,7 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import os import os
import argparse # Command line arguments parsing and help. import argparse # Command line arguments parsing and help.
import subprocess import subprocess
@ -16,15 +18,15 @@ def generate_nsi(source_path: str, dist_path: str, filename: str):
dist_loc = Path(os.getcwd(), dist_path) dist_loc = Path(os.getcwd(), dist_path)
source_loc = Path(os.getcwd(), source_path) source_loc = Path(os.getcwd(), source_path)
instdir = Path("$INSTDIR") instdir = Path("$INSTDIR")
dist_paths = [p.relative_to(dist_loc.joinpath("Ultimaker-Cura")) for p in sorted(dist_loc.joinpath("Ultimaker-Cura").rglob("*")) if p.is_file()] dist_paths = [p.relative_to(dist_loc.joinpath("UltiMaker-Cura")) for p in sorted(dist_loc.joinpath("UltiMaker-Cura").rglob("*")) if p.is_file()]
mapped_out_paths = {} mapped_out_paths = {}
for dist_path in dist_paths: for dist_path in dist_paths:
if "__pycache__" not in dist_path.parts: if "__pycache__" not in dist_path.parts:
out_path = instdir.joinpath(dist_path).parent out_path = instdir.joinpath(dist_path).parent
if out_path not in mapped_out_paths: if out_path not in mapped_out_paths:
mapped_out_paths[out_path] = [(dist_loc.joinpath("Ultimaker-Cura", dist_path), instdir.joinpath(dist_path))] mapped_out_paths[out_path] = [(dist_loc.joinpath("UltiMaker-Cura", dist_path), instdir.joinpath(dist_path))]
else: else:
mapped_out_paths[out_path].append((dist_loc.joinpath("Ultimaker-Cura", dist_path), instdir.joinpath(dist_path))) mapped_out_paths[out_path].append((dist_loc.joinpath("UltiMaker-Cura", dist_path), instdir.joinpath(dist_path)))
rmdir_paths = set() rmdir_paths = set()
for rmdir_f in mapped_out_paths.values(): for rmdir_f in mapped_out_paths.values():
@ -40,13 +42,13 @@ def generate_nsi(source_path: str, dist_path: str, filename: str):
nsis_content = template.render( nsis_content = template.render(
app_name = f"Ultimaker Cura {os.getenv('CURA_VERSION_FULL')}", app_name = f"UltiMaker Cura {os.getenv('CURA_VERSION_FULL')}",
main_app = "Ultimaker-Cura.exe", main_app = "UltiMaker-Cura.exe",
version = os.getenv('CURA_VERSION_FULL'), version = os.getenv('CURA_VERSION_FULL'),
version_major = os.environ.get("CURA_VERSION_MAJOR"), version_major = os.environ.get("CURA_VERSION_MAJOR"),
version_minor = os.environ.get("CURA_VERSION_MINOR"), version_minor = os.environ.get("CURA_VERSION_MINOR"),
version_patch = os.environ.get("CURA_VERSION_PATCH"), version_patch = os.environ.get("CURA_VERSION_PATCH"),
company = "Ultimaker B.V.", company = "UltiMaker",
web_site = "https://ultimaker.com", web_site = "https://ultimaker.com",
year = datetime.now().year, year = datetime.now().year,
cura_license_file = str(source_loc.joinpath("packaging", "cura_license.txt")), cura_license_file = str(source_loc.joinpath("packaging", "cura_license.txt")),
@ -58,7 +60,7 @@ def generate_nsi(source_path: str, dist_path: str, filename: str):
destination = filename destination = filename
) )
with open(dist_loc.joinpath("Ultimaker-Cura.nsi"), "w") as f: with open(dist_loc.joinpath("UltiMaker-Cura.nsi"), "w") as f:
f.write(nsis_content) f.write(nsis_content)
shutil.copy(source_loc.joinpath("packaging", "NSIS", "fileassoc.nsh"), dist_loc.joinpath("fileassoc.nsh")) shutil.copy(source_loc.joinpath("packaging", "NSIS", "fileassoc.nsh"), dist_loc.joinpath("fileassoc.nsh"))
@ -66,7 +68,7 @@ def generate_nsi(source_path: str, dist_path: str, filename: str):
def build(dist_path: str): def build(dist_path: str):
dist_loc = Path(os.getcwd(), dist_path) dist_loc = Path(os.getcwd(), dist_path)
command = ["makensis", "/V2", "/P4", str(dist_loc.joinpath("Ultimaker-Cura.nsi"))] command = ["makensis", "/V2", "/P4", str(dist_loc.joinpath("UltiMaker-Cura.nsi"))]
subprocess.run(command) subprocess.run(command)
@ -74,7 +76,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser(description = "Create Windows exe installer of Cura.") parser = argparse.ArgumentParser(description = "Create Windows exe installer of Cura.")
parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.") parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.")
parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder") parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder")
parser.add_argument("filename", type = str, help = "Filename of the exe (e.g. 'Ultimaker-Cura-5.1.0-beta-Windows-X64.exe')") parser.add_argument("filename", type = str, help = "Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.exe')")
args = parser.parse_args() args = parser.parse_args()
generate_nsi(args.source_path, args.dist_path, args.filename) generate_nsi(args.source_path, args.dist_path, args.filename)
build(args.dist_path) build(args.dist_path)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 604 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 381 KiB

Before After
Before After

View file

@ -1,3 +1,7 @@
# Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.
import os import os
import argparse # Command line arguments parsing and help. import argparse # Command line arguments parsing and help.
import subprocess import subprocess
@ -14,11 +18,11 @@ def build_dmg(source_path: str, dist_path: str, filename: str) -> None:
"--app-drop-link", "520", "272", "--app-drop-link", "520", "272",
"--volicon", f"{source_path}/packaging/icons/VolumeIcons_Cura.icns", "--volicon", f"{source_path}/packaging/icons/VolumeIcons_Cura.icns",
"--icon-size", "90", "--icon-size", "90",
"--icon", "Ultimaker-Cura.app", "169", "272", "--icon", "UltiMaker-Cura.app", "169", "272",
"--eula", f"{source_path}/packaging/cura_license.txt", "--eula", f"{source_path}/packaging/cura_license.txt",
"--background", f"{source_path}/packaging/dmg/cura_background_dmg.png", "--background", f"{source_path}/packaging/dmg/cura_background_dmg.png",
f"{dist_path}/{filename}", f"{dist_path}/{filename}",
f"{dist_path}/Ultimaker-Cura.app"] f"{dist_path}/UltiMaker-Cura.app"]
subprocess.run(arguments) subprocess.run(arguments)
@ -57,7 +61,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser(description = "Create dmg of Cura.") parser = argparse.ArgumentParser(description = "Create dmg of Cura.")
parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.") parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.")
parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder") parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder")
parser.add_argument("filename", type = str, help = "Filename of the dmg (e.g. 'Ultimaker-Cura-5.1.0-beta-Linux-X64.dmg')") parser.add_argument("filename", type = str, help = "Filename of the dmg (e.g. 'UltiMaker-Cura-5.1.0-beta-Linux-X64.dmg')")
args = parser.parse_args() args = parser.parse_args()
build_dmg(args.source_path, args.dist_path, args.filename) build_dmg(args.source_path, args.dist_path, args.filename)
sign(args.dist_path, args.filename) sign(args.dist_path, args.filename)

View file

@ -1,4 +1,4 @@
# Copyright (c) 2021-2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import argparse #To run the engine in debug mode if the front-end is in debug mode. import argparse #To run the engine in debug mode if the front-end is in debug mode.
@ -166,7 +166,7 @@ class CuraEngineBackend(QObject, Backend):
self._slicing_error_message.addAction( self._slicing_error_message.addAction(
action_id = "report_bug", action_id = "report_bug",
name = catalog.i18nc("@message:button", "Report a bug"), name = catalog.i18nc("@message:button", "Report a bug"),
description = catalog.i18nc("@message:description", "Report a bug on Ultimaker Cura's issue tracker."), description = catalog.i18nc("@message:description", "Report a bug on UltiMaker Cura's issue tracker."),
icon = "[no_icon]" icon = "[no_icon]"
) )
self._slicing_error_message.actionTriggered.connect(self._reportBackendError) self._slicing_error_message.actionTriggered.connect(self._reportBackendError)

View file

@ -1,5 +1,5 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import json import json
from typing import List, Dict, Any, Set from typing import List, Dict, Any, Set
@ -142,7 +142,7 @@ class CloudPackageChecker(QObject):
sync_message = Message(self._i18n_catalog.i18nc( sync_message = Message(self._i18n_catalog.i18nc(
"@info:generic", "@info:generic",
"Do you want to sync material and software packages with your account?"), "Do you want to sync material and software packages with your account?"),
title = self._i18n_catalog.i18nc("@info:title", "Changes detected from your Ultimaker account", )) title = self._i18n_catalog.i18nc("@info:title", "Changes detected from your UltiMaker account", ))
sync_message.addAction("sync", sync_message.addAction("sync",
name = self._i18n_catalog.i18nc("@action:button", "Sync"), name = self._i18n_catalog.i18nc("@action:button", "Sync"),
icon = "", icon = "",

View file

@ -1,5 +1,5 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import tempfile import tempfile
from typing import Dict, List, Any from typing import Dict, List, Any
@ -92,7 +92,7 @@ class DownloadPresenter:
lifetime = 0, lifetime = 0,
use_inactivity_timer = False, use_inactivity_timer = False,
progress = 0.0, progress = 0.0,
title = i18n_catalog.i18nc("@info:title", "Changes detected from your Ultimaker account")) title = i18n_catalog.i18nc("@info:title", "Changes detected from your UltiMaker account"))
def _onFinished(self, package_id: str, reply: QNetworkReply) -> None: def _onFinished(self, package_id: str, reply: QNetworkReply) -> None:
self._progress[package_id]["received"] = self._progress[package_id]["total"] self._progress[package_id]["received"] = self._progress[package_id]["total"]

View file

@ -92,7 +92,7 @@ class PackageModel(QObject):
"display_name": display_name, "display_name": display_name,
"package_version": package_version, "package_version": package_version,
"package_type": package_type, "package_type": package_type,
"description": "The material package associated with the Cura project could not be found on the Ultimaker marketplace. Use the partial material profile definition stored in the Cura project file at your own risk." "description": catalog.i18nc("@label:label Ultimaker Marketplace is a brand name, don't translate", "The material package associated with the Cura project could not be found on the Ultimaker Marketplace. Use the partial material profile definition stored in the Cura project file at your own risk.")
} }
package_model = cls(package_data) package_model = cls(package_data)
package_model.setIsMissingPackageInformation(True) package_model.setIsMissingPackageInformation(True)

View file

@ -1,5 +1,6 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.15 import QtQuick 2.15
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15 import QtQuick.Layouts 1.15
@ -12,7 +13,7 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner"); bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner");
bannerIcon: UM.Theme.getIcon("ArrowDoubleCircleRight") bannerIcon: UM.Theme.getIcon("ArrowDoubleCircleRight")
bannerText: catalog.i18nc("@text", "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.") bannerText: catalog.i18nc("@text", "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.")
bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/4411125921426/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-manage" bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/4411125921426/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-manage"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false); UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false);

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import UM 1.4 as UM import UM 1.4 as UM
@ -9,7 +9,7 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner") bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner")
bannerIcon: UM.Theme.getIcon("Spool") bannerIcon: UM.Theme.getIcon("Spool")
bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your Ultimaker 3D printers.") bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your UltiMaker 3D printers.")
bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-materials" bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-materials"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_material_banner", false); UM.Preferences.setValue("cura/market_place_show_material_banner", false);

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import UM 1.4 as UM import UM 1.4 as UM
@ -9,7 +9,7 @@ Packages
bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner") bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner")
bannerIcon: UM.Theme.getIcon("Shop") bannerIcon: UM.Theme.getIcon("Shop")
bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users.") bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users.")
bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-plugins" bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-plugins"
onRemoveBanner: function() { onRemoveBanner: function() {
UM.Preferences.setValue("cura/market_place_show_plugin_banner", false) UM.Preferences.setValue("cura/market_place_show_plugin_banner", false)

View file

@ -1,4 +1,4 @@
// Copyright (c) 2021 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.15 import QtQuick 2.15
@ -18,9 +18,9 @@ Control
{ {
switch(packageData.packageType) switch(packageData.packageType)
{ {
case "plugin": return catalog.i18nc("@info", "Ultimaker Verified Plug-in"); case "plugin": return catalog.i18nc("@info", "UltiMaker Verified Plug-in");
case "material": return catalog.i18nc("@info", "Ultimaker Certified Material"); case "material": return catalog.i18nc("@info", "UltiMaker Certified Material");
default: return catalog.i18nc("@info", "Ultimaker Verified Package"); default: return catalog.i18nc("@info", "UltiMaker Verified Package");
} }
} }
visible: parent.hovered visible: parent.hovered

View file

@ -1,4 +1,4 @@
// Copyright (c) 2018 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7 import QtQuick 2.7
@ -21,5 +21,13 @@ Item
anchors.centerIn: parent anchors.centerIn: parent
machineListModel: Cura.MachineListModel {} machineListModel: Cura.MachineListModel {}
machineManager: Cura.MachineManager
onSelectPrinter: function(machine)
{
toggleContent();
Cura.MachineManager.setActiveMachine(machine.id);
}
} }
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -70,7 +70,7 @@ Window
left: parent.left left: parent.left
right: parent.right right: parent.right
} }
text: catalog.i18nc("@text:window", "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:") text: catalog.i18nc("@text:window", "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:")
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }

View file

@ -21,7 +21,7 @@ class UFPReader(MeshReader):
MimeTypeDatabase.addMimeType( MimeTypeDatabase.addMimeType(
MimeType( MimeType(
name = "application/x-ufp", name = "application/x-ufp",
comment = "Ultimaker Format Package", comment = "UltiMaker Format Package",
suffixes = ["ufp"] suffixes = ["ufp"]
) )
) )

View file

@ -1,5 +1,5 @@
#Copyright (c) 2019 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
#Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import sys import sys
@ -19,7 +19,7 @@ def getMetaData():
{ {
"mime_type": "application/x-ufp", "mime_type": "application/x-ufp",
"extension": "ufp", "extension": "ufp",
"description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package") "description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package")
} }
] ]
} }

View file

@ -1,6 +1,7 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import json import json
from dataclasses import asdict
from typing import cast, List, Dict from typing import cast, List, Dict
from Charon.VirtualFile import VirtualFile # To open UFP files. from Charon.VirtualFile import VirtualFile # To open UFP files.
@ -40,7 +41,7 @@ class UFPWriter(MeshWriter):
MimeTypeDatabase.addMimeType( MimeTypeDatabase.addMimeType(
MimeType( MimeType(
name = "application/x-ufp", name = "application/x-ufp",
comment = "Ultimaker Format Package", comment = "UltiMaker Format Package",
suffixes = ["ufp"] suffixes = ["ufp"]
) )
) )
@ -225,8 +226,7 @@ class UFPWriter(MeshWriter):
"changes": {}, "changes": {},
"all_settings": {}, "all_settings": {},
}, },
"intent": machine_manager.activeIntentCategory, "quality": asdict(machine_manager.activeQualityDisplayNameMap()),
"quality": machine_manager.activeQualityOrQualityChangesName,
} }
global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack())

View file

@ -1,5 +1,5 @@
#Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
#Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import sys import sys
@ -25,7 +25,7 @@ def getMetaData():
"mime_type": "application/x-ufp", "mime_type": "application/x-ufp",
"mode": MeshWriter.OutputMode.BinaryMode, "mode": MeshWriter.OutputMode.BinaryMode,
"extension": "ufp", "extension": "ufp",
"description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package") "description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package")
} }
] ]
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.3 import QtQuick 2.3
@ -284,7 +284,7 @@ Item
MonitorInfoBlurb MonitorInfoBlurb
{ {
id: cameraDisabledInfo id: cameraDisabledInfo
text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." + text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." +
" Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam.") " Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam.")
target: cameraButton target: cameraButton
} }

View file

@ -1,4 +1,4 @@
// Copyright (c) 2022 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.15 import QtQuick 2.15

View file

@ -1,5 +1,5 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from time import time from time import time
import os import os

View file

@ -1,5 +1,5 @@
# Copyright (c) 2021 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
import os import os
from typing import Dict, List, Optional, Set from typing import Dict, List, Optional, Set

View file

@ -1,5 +1,6 @@
# Copyright (c) 2022 Ultimaker B.V. # Copyright (c) 2022 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM import i18nCatalog from UM import i18nCatalog
from UM.Message import Message from UM.Message import Message
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication

View file

@ -1,4 +1,4 @@
// Copyright (c) 2019 Ultimaker B.V. // Copyright (c) 2022 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
@ -27,7 +27,7 @@ Cura.MachineAction
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: catalog.i18nc("@label","Please select any upgrades made to this Ultimaker Original") text: catalog.i18nc("@label","Please select any upgrades made to this UltiMaker Original")
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
} }

View file

@ -1125,21 +1125,28 @@ class XmlMaterialProfile(InstanceContainer):
id_list = list(id_list) id_list = list(id_list)
return id_list return id_list
__product_to_id_map: Optional[Dict[str, List[str]]] = None
@classmethod @classmethod
def getProductIdMap(cls) -> Dict[str, List[str]]: def getProductIdMap(cls) -> Dict[str, List[str]]:
"""Gets a mapping from product names in the XML files to their definition IDs. """Gets a mapping from product names in the XML files to their definition IDs.
This loads the mapping from a file. This loads the mapping from a file.
""" """
if cls.__product_to_id_map is not None:
return cls.__product_to_id_map
plugin_path = cast(str, PluginRegistry.getInstance().getPluginPath("XmlMaterialProfile")) plugin_path = cast(str, PluginRegistry.getInstance().getPluginPath("XmlMaterialProfile"))
product_to_id_file = os.path.join(plugin_path, "product_to_id.json") product_to_id_file = os.path.join(plugin_path, "product_to_id.json")
with open(product_to_id_file, encoding = "utf-8") as f: with open(product_to_id_file, encoding = "utf-8") as f:
product_to_id_map = json.load(f) contents = ""
product_to_id_map = {key: [value] for key, value in product_to_id_map.items()} for line in f:
contents += line if "#" not in line else "".join([line.replace("#", str(n)) for n in range(1, 12)])
cls.__product_to_id_map = json.loads(contents)
cls.__product_to_id_map = {key: [value] for key, value in cls.__product_to_id_map.items()}
#This also loads "Ultimaker S5" -> "ultimaker_s5" even though that is not strictly necessary with the default to change spaces into underscores. #This also loads "Ultimaker S5" -> "ultimaker_s5" even though that is not strictly necessary with the default to change spaces into underscores.
#However it is not always loaded with that default; this mapping is also used in serialize() without that default. #However it is not always loaded with that default; this mapping is also used in serialize() without that default.
return product_to_id_map return cls.__product_to_id_map
@staticmethod @staticmethod
def _parseCompatibleValue(value: str): def _parseCompatibleValue(value: str):

View file

@ -1,14 +1,11 @@
{ {
"Ultimaker 2": "ultimaker2", "Ultimaker #": "ultimaker#",
"Ultimaker 2 Extended": "ultimaker2_extended", "Ultimaker # Extended": "ultimaker#_extended",
"Ultimaker 2 Extended+": "ultimaker2_extended_plus", "Ultimaker # Extended+": "ultimaker#_extended_plus",
"Ultimaker 2 Go": "ultimaker2_go", "Ultimaker # Go": "ultimaker#_go",
"Ultimaker 2+": "ultimaker2_plus", "Ultimaker #+": "ultimaker#_plus",
"Ultimaker 2+ Connect": "ultimaker2_plus_connect", "Ultimaker #+ Connect": "ultimaker#_plus_connect",
"Ultimaker 3": "ultimaker3", "Ultimaker S#": "ultimaker_s#",
"Ultimaker 3 Extended": "ultimaker3_extended",
"Ultimaker S3": "ultimaker_s3",
"Ultimaker S5": "ultimaker_s5",
"Ultimaker Original": "ultimaker_original", "Ultimaker Original": "ultimaker_original",
"Ultimaker Original+": "ultimaker_original_plus", "Ultimaker Original+": "ultimaker_original_plus",
"Ultimaker Original Dual Extrusion": "ultimaker_original_dual", "Ultimaker Original Dual Extrusion": "ultimaker_original_dual",

33
printer-linter/README.md Normal file
View file

@ -0,0 +1,33 @@
# Printer Linter
Printer linter is a python package that does linting on Cura definitions files.
Running this on your definition files will get them ready for a pull request.
## Running Locally
From the Cura root folder.
```python3 printer-linter/src/terminal.py "flashforge_dreamer_nx.def.json" "flashforge_base.def.json" --fix --format```
## Developing
### Printer Linter Rules
Inside ```.printer-linter``` you can find a list of rules. These are seperated into roughly three categories.
1. Checks
1. These rules are about checking if a file meets some requirements that can't be fixed by replacing its content.
2. An example of a check is ```diagnostic-mesh-file-extension``` this checks if a mesh file extension is acceptable.
2. Format
1. These rules are purely about how a file is structured, not content.
2. An example of a format rule is ```format-definition-bracket-newline``` This rule says that when assigning a dict value the bracket should go on a new line.
3. Fixes
1. These are about the content of the file.
2. An example of a fix is ```diagnostic-definition-redundant-override``` This removes settings that have already been defined by a parent definition
### Linters
Linters find issues within a file. There are separate linters for each type of file. The linter that is used is decided by the create function in factory.py. All linters implement the abstract class Linter.
A Linter class returns an iterator of Diagnostics, each diagnostic is an issue with the file. The diagnostics can also contain suggested fixes.
### Formatters
Formatters load a file reformat it and write it to disk. There are separate formatters for each file type. All formatters implement the abstract class Formatter.
Formatters should format based on the Format rules in .printer-linter

View file

@ -0,0 +1,17 @@
[project]
name = "printerlinter"
description = "Cura UltiMaker printer linting tool"
version = "0.1.0"
authors = [
{ name = "UltiMaker", email = "cura@ultimaker.com" }
]
dependencies = [
"pyyaml"
]
[project.scripts]
printer-linter = "terminal:main"
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

10
printer-linter/setup.cfg Normal file
View file

@ -0,0 +1,10 @@
[metadata]
name = printerlinter
[options]
package_dir=
=src
packages=find:
[options.packages.find]
where=src

6
printer-linter/setup.py Normal file
View file

@ -0,0 +1,6 @@
#!/usr/bin/env python
from setuptools import setup
if __name__ == "__main__":
setup()

View file

@ -0,0 +1,4 @@
from .diagnostic import Diagnostic
from .factory import getLinter
__all__ = ["Diagnostic", "getLinter"]

View file

@ -0,0 +1,34 @@
from pathlib import Path
from typing import Optional, List, Dict, Any
from .replacement import Replacement
class Diagnostic:
def __init__(self, file: Path, diagnostic_name: str, message: str, level: str, offset: int, replacements: Optional[List[Replacement]] = None) -> None:
""" A diagnosis of an issue in "file" at "offset" in that file. May include suggested replacements.
@param file: The path to the file this diagnostic is for.
@param diagnostic_name: The name of the diagnostic rule that spawned this result. A list can be found in .printer-linter.
@param message: A message explaining the issue with this file.
@param level: How important this diagnostic is, ranges from Warning -> Error.
@param offset: The offset in file where the issue is.
@param replacements: A list of Replacement that contain replacement text.
"""
self.file = file
self.diagnostic_name = diagnostic_name
self.message = message
self.offset = offset
self.level = level
self.replacements = replacements
def toDict(self) -> Dict[str, Any]:
return {"DiagnosticName": self.diagnostic_name,
"DiagnosticMessage": {
"Message": self.message,
"FilePath": self.file.as_posix(),
"FileOffset": self.offset,
"Replacements": [] if self.replacements is None else [r.toDict() for r in self.replacements],
},
"Level": self.level
}

View file

@ -0,0 +1,26 @@
from pathlib import Path
from typing import Optional
from .linters.profile import Profile
from .linters.defintion import Definition
from .linters.linter import Linter
from .linters.meshes import Meshes
def getLinter(file: Path, settings: dict) -> Optional[Linter]:
""" Returns a Linter depending on the file format """
if not file.exists():
return None
if ".inst" in file.suffixes and ".cfg" in file.suffixes:
return Profile(file, settings)
if ".def" in file.suffixes and ".json" in file.suffixes:
if file.stem in ("fdmprinter.def", "fdmextruder.def"):
return None
return Definition(file, settings)
if file.parent.stem == "meshes":
return Meshes(file, settings)
return None

View file

@ -0,0 +1,4 @@
from .def_json_formatter import DefJsonFormatter
from .inst_cfg_formatter import InstCfgFormatter
__all__ = ["DefJsonFormatter", "InstCfgFormatter"]

View file

@ -0,0 +1,83 @@
import json
import re
from collections import OrderedDict
from pathlib import Path
from typing import Dict
from .formatter import FileFormatter
# Dictionary items with matching keys will be sorted as if they were the value
# Example: "version" will be sorted as if it was "0"
TOP_LEVEL_SORT_PRIORITY = {
"version": "0",
"name": "1",
"inherits": "3",
}
METADATA_SORT_PRIORITY = {
"visible": "0",
"author": "1",
"manufacturer": "2",
"file_formats": "3",
"platform": "4",
}
class DefJsonFormatter(FileFormatter):
def formatFile(self, file: Path):
""" Format .def.json files according to the rules in settings.
You can assume that you will be running regex on standard formatted json files, because we load the json first and then
dump it to a string. This means you only have to write regex that works on the output of json.dump()
"""
definition = json.loads(file.read_text(), object_pairs_hook=OrderedDict)
if self._settings["format"].get("format-definition-sort-keys", True) and file.stem.split(".")[0] != "fdmprinter":
definition = self.order_keys(definition)
content = json.dumps(definition, indent=self._settings["format"].get("format-definition-indent", 4))
if self._settings["format"].get("format-definition-bracket-newline", True):
newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)")
content = newline.sub(r"\1\2:\1{", content)
if self._settings["format"].get("format-definition-single-value-single-line", True):
single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(.*\n,?)")
content = single_value_dict.sub(r"\1 { \3 }\5", content)
single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(.*\n,?)")
content = single_value_list.sub(r"\1 [ \3 ]\5", content)
if self._settings["format"].get("format-definition-paired-coordinate-array", True):
paired_coordinates = re.compile(r"(\s*\[)\s*([-\d\.]+),\s*([-\d\.]+)[\s]*(\])")
content = paired_coordinates.sub(r"\1\2, \3\4", content)
file.write_text(content)
def order_keys(self, json_content: OrderedDict) -> OrderedDict:
""" Orders json keys lexicographically """
# First order all keys (Recursive) lexicographically
json_content_text = json.dumps(json_content, sort_keys=True)
json_content = json.loads(json_content_text, object_pairs_hook=OrderedDict)
# Do a custom ordered sort on the top level items in the json. This is so that keys like "version" appear at the top.
json_content = self.custom_sort_keys(json_content, TOP_LEVEL_SORT_PRIORITY)
# Do a custom ordered sort on collections that are one level deep into the json
if "metadata" in json_content.keys():
json_content["metadata"] = self.custom_sort_keys(json_content["metadata"], METADATA_SORT_PRIORITY)
return json_content
def custom_sort_keys(self, ordered_dictionary: OrderedDict, sort_priority: Dict[str, str]) -> OrderedDict:
""" Orders keys in dictionary lexicographically, except for keys with matching strings in sort_priority.
Keys in ordered_dictionary that match keys in sort_priority will sort based on the value in sort_priority.
@param ordered_dictionary: A dictionary that will have it's top level keys sorted
@param sort_priority: A mapping from string keys to alternative strings to be used instead when sorting.
@return: A dictionary sorted by it's top level keys
"""
return OrderedDict(sorted(ordered_dictionary.items(), key=lambda x: sort_priority[x[0]] if str(x[0]) in sort_priority.keys() else str(x[0])))

View file

@ -0,0 +1,16 @@
from abc import ABC, abstractmethod
from pathlib import Path
class FileFormatter(ABC):
def __init__(self, settings: dict) -> None:
""" Yields Diagnostics for file, these are issues with the file such as bad text format or too large file size.
@param file: A file to generate diagnostics for
@param settings: A list of settings containing rules for creating diagnostics
"""
self._settings = settings
@abstractmethod
def formatFile(self, file: Path) -> None:
pass

View file

@ -0,0 +1,21 @@
import configparser
import json
import re
from collections import OrderedDict
from pathlib import Path
from .formatter import FileFormatter
class InstCfgFormatter(FileFormatter):
def formatFile(self, file: Path):
""" Format .inst.cfg files according to the rules in settings """
config = configparser.ConfigParser()
config.read(file)
if self._settings["format"].get("format-profile-sort-keys", True):
for section in config._sections:
config._sections[section] = OrderedDict(sorted(config._sections[section].items(), key=lambda t: t[0]))
config._sections = OrderedDict(sorted(config._sections.items(), key=lambda t: t[0]))
with open(file, "w") as f:
config.write(f, space_around_delimiters=self._settings["format"].get("format-profile-space-around-delimiters", True))

View file

@ -0,0 +1,6 @@
from .profile import Profile
from .meshes import Meshes
from .linter import Linter
from .defintion import Definition
__all__ = ["Profile", "Meshes", "Linter", "Definition"]

View file

@ -0,0 +1,122 @@
import json
import re
from pathlib import Path
from typing import Iterator
from ..diagnostic import Diagnostic
from .linter import Linter
from ..replacement import Replacement
class Definition(Linter):
""" Finds issues in definition files, such as overriding default parameters """
def __init__(self, file: Path, settings: dict) -> None:
super().__init__(file, settings)
self._definitions = {}
self._loadDefinitionFiles(file)
self._content = self._file.read_text()
self._loadBasePrinterSettings()
@property
def base_def(self):
if "fdmextruder" in self._definitions:
return "fdmextruder"
return "fdmprinter"
def check(self) -> Iterator[Diagnostic]:
if self._settings["checks"].get("diagnostic-definition-redundant-override", False):
for check in self.checkRedefineOverride():
yield check
# Add other which will yield Diagnostic's
# TODO: A check to determine if the user set value is with the min and max value defined in the parent and doesn't trigger a warning
# TODO: A check if the key exist in the first place
# TODO: Check if the model platform exist
yield
def checkRedefineOverride(self) -> Iterator[Diagnostic]:
""" Checks if definition file overrides its parents settings with the same value. """
definition_name = list(self._definitions.keys())[0]
definition = self._definitions[definition_name]
if "overrides" in definition and definition_name not in ("fdmprinter", "fdmextruder"):
for key, value_dict in definition["overrides"].items():
is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits'])
if is_redefined:
redefined = re.compile(r'.*(\"' + key + r'\"[\s\:\S]*?)\{[\s\S]*?\},?')
found = redefined.search(self._content)
yield Diagnostic(
file = self._file,
diagnostic_name = "diagnostic-definition-redundant-override",
message = f"Overriding {key} with the same value ({value}) as defined in parent definition: {definition['inherits']}",
level = "Warning",
offset = found.span(0)[0],
replacements = [Replacement(
file = self._file,
offset = found.span(1)[0],
length = len(found.group()),
replacement_text = "")]
)
def _loadDefinitionFiles(self, definition_file) -> None:
""" Loads definition file contents into self._definitions. Also load parent definition if it exists. """
definition_name = Path(definition_file.stem).stem
if not definition_file.exists() or definition_name in self._definitions:
return
# Load definition file into dictionary
self._definitions[definition_name] = json.loads(definition_file.read_text())
# Load parent definition if it exists
if "inherits" in self._definitions[definition_name]:
if self._definitions[definition_name]['inherits'] in ("fdmextruder", "fdmprinter"):
parent_file = definition_file.parent.parent.joinpath("definitions", f"{self._definitions[definition_name]['inherits']}.def.json")
else:
parent_file = definition_file.parent.joinpath(f"{self._definitions[definition_name]['inherits']}.def.json")
self._loadDefinitionFiles(parent_file)
def _isDefinedInParent(self, key, value_dict, inherits_from):
if "overrides" not in self._definitions[inherits_from]:
return self._isDefinedInParent(key, value_dict, self._definitions[inherits_from]["inherits"])
parent = self._definitions[inherits_from]["overrides"]
if key not in self._definitions[self.base_def]["overrides"]:
is_number = False
else:
is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int")
for value in value_dict.values():
if key in parent:
check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None]
for check_value in check_values:
if is_number:
try:
v = str(float(value))
except:
v = value
try:
cv = str(float(check_value))
except:
cv = check_value
else:
v = value
cv = check_value
if v == cv:
return True, value, parent
if "inherits" in parent:
return self._isDefinedInParent(key, value_dict, parent["inherits"])
return False, None, None
def _loadBasePrinterSettings(self):
""" TODO @Jelle please explain why this """
settings = {}
for k, v in self._definitions[self.base_def]["settings"].items():
self._getSetting(k, v, settings)
self._definitions[self.base_def] = {"overrides": settings}
def _getSetting(self, name, setting, settings) -> None:
if "children" in setting:
for childname, child in setting["children"].items():
self._getSetting(childname, child, settings)
settings |= {name: setting}

View file

@ -0,0 +1,20 @@
from abc import ABC, abstractmethod
from pathlib import Path
from typing import Iterator
from ..diagnostic import Diagnostic
class Linter(ABC):
def __init__(self, file: Path, settings: dict) -> None:
""" Yields Diagnostics for file, these are issues with the file such as bad text format or too large file size.
@param file: A file to generate diagnostics for
@param settings: A list of settings containing rules for creating diagnostics
"""
self._settings = settings
self._file = file
@abstractmethod
def check(self) -> Iterator[Diagnostic]:
pass

View file

@ -0,0 +1,47 @@
from pathlib import Path
from typing import Iterator
from ..diagnostic import Diagnostic
from .linter import Linter
class Meshes(Linter):
def __init__(self, file: Path, settings: dict) -> None:
""" Finds issues in model files, such as incorrect file format or too large size """
super().__init__(file, settings)
self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6)
def check(self) -> Iterator[Diagnostic]:
if self._settings["checks"].get("diagnostic-mesh-file-extension", False):
for check in self.checkFileFormat():
yield check
if self._settings["checks"].get("diagnostic-mesh-file-size", False):
for check in self.checkFileSize():
yield check
yield
def checkFileFormat(self) -> Iterator[Diagnostic]:
""" Check if mesh is in supported format """
if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"):
yield Diagnostic(
file = self._file,
diagnostic_name = "diagnostic-mesh-file-extension",
message = f"Extension {self._file.suffix} not supported, use 3mf, obj or stl",
level = "Error",
offset = 1
)
yield
def checkFileSize(self) -> Iterator[Diagnostic]:
""" Check if file is within size limits for Cura """
if self._file.stat().st_size > self._max_file_size:
yield Diagnostic(
file = self._file,
diagnostic_name = "diagnostic-mesh-file-size",
message = f"Mesh file with a size {self._file.stat().st_size} is bigger then allowed maximum of {self._max_file_size}",
level = "Error",
offset = 1
)
yield

View file

@ -0,0 +1,9 @@
from typing import Iterator
from ..diagnostic import Diagnostic
from .linter import Linter
class Profile(Linter):
def check(self) -> Iterator[Diagnostic]:
yield

View file

@ -0,0 +1,21 @@
from pathlib import Path
class Replacement:
def __init__(self, file: Path, offset: int, length: int, replacement_text: str):
""" Replacement text for file between offset and offset+length.
@param file: File to replace text in
@param offset: Offset in file to start text replace
@param length: Length of text that will be replaced. offset -> offset+length is the section of text to replace.
@param replacement_text: Text to insert of offset in file.
"""
self.file = file
self.offset = offset
self.length = length
self.replacement_text = replacement_text
def toDict(self) -> dict:
return {"FilePath": self.file.as_posix(),
"Offset": self.offset,
"Length": self.length,
"ReplacementText": self.replacement_text}

View file

@ -0,0 +1,117 @@
from argparse import ArgumentParser
from os import getcwd
from pathlib import Path
from typing import List
import yaml
from printerlinter import factory
from printerlinter.diagnostic import Diagnostic
from printerlinter.formatters.def_json_formatter import DefJsonFormatter
from printerlinter.formatters.inst_cfg_formatter import InstCfgFormatter
def main() -> None:
parser = ArgumentParser(
description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources")
parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file")
parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored")
parser.add_argument("--format", action="store_true", help="Format the files")
parser.add_argument("--diagnose", action="store_true", help="Diagnose the files")
parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files")
parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format")
args = parser.parse_args()
files = extractFilePaths(args.Files)
setting_path = args.setting
to_format = args.format
to_fix = args.fix
to_diagnose = args.diagnose
report = args.report
if not setting_path:
setting_path = Path(getcwd(), ".printer-linter")
if not setting_path.exists():
print(f"Can't find the settings: {setting_path}")
return
with open(setting_path, "r") as f:
settings = yaml.load(f, yaml.FullLoader)
full_body_check = {"Diagnostics": []}
if to_fix or to_diagnose:
for file in files:
diagnostics = diagnoseIssuesWithFile(file, settings)
full_body_check["Diagnostics"].extend([d.toDict() for d in diagnostics])
results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240)
if report:
report.write_text(results)
else:
print(results)
if to_fix:
for file in files:
if f"{file.as_posix()}" in full_body_check:
applyFixesToFile(file, settings, full_body_check)
if to_format:
for file in files:
applyFormattingToFile(file, settings)
def diagnoseIssuesWithFile(file: Path, settings: dict) -> List[Diagnostic]:
""" For file, runs all diagnostic checks in settings and returns a list of diagnostics """
linter = factory.getLinter(file, settings)
if not linter:
return []
return list(filter(lambda d: d is not None, linter.check()))
def applyFixesToFile(file, settings, full_body_check) -> None:
if not file.exists():
return
ext = ".".join(file.name.split(".")[-2:])
if ext == "def.json":
issues = full_body_check[f"{file.as_posix()}"]
for issue in issues:
if issue["diagnostic"] == "diagnostic-definition-redundant-override" and settings["fixes"].get(
"diagnostic-definition-redundant-override", True):
pass
def applyFormattingToFile(file: Path, settings) -> None:
if not file.exists():
return
ext = ".".join(file.name.split(".")[-2:])
if ext == "def.json":
formatter = DefJsonFormatter(settings)
formatter.formatFile(file)
if ext == "inst.cfg":
formatter = InstCfgFormatter(settings)
formatter.formatFile(file)
def extractFilePaths(paths: List[Path]) -> List[Path]:
""" Takes list of files and directories, returns the files as well as all files within directories as a List """
file_paths = []
for path in paths:
if path.is_dir():
file_paths.extend(path.rglob("**/*"))
else:
file_paths.append(path)
return file_paths
if __name__ == "__main__":
main()

View file

@ -1,5 +1,6 @@
pytest pytest
pyinstaller pyinstaller
pyinstaller-hooks-contrib pyinstaller-hooks-contrib
pyyaml
sip==6.5.1 sip==6.5.1
jinja2 jinja2

View file

@ -10,7 +10,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -27,7 +27,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -61,7 +61,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -78,7 +78,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -95,7 +95,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -112,7 +112,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -129,7 +129,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -146,7 +146,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -163,7 +163,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -180,7 +180,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -197,7 +197,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -214,7 +214,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -248,7 +248,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -265,7 +265,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -282,7 +282,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -316,7 +316,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -333,7 +333,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -350,7 +350,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -367,7 +367,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -384,7 +384,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -401,7 +401,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -418,7 +418,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -435,7 +435,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -452,7 +452,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -469,7 +469,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -486,7 +486,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -503,7 +503,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -520,7 +520,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -537,7 +537,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -554,7 +554,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -571,7 +571,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -588,7 +588,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -605,7 +605,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -622,7 +622,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -639,7 +639,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -656,7 +656,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -673,7 +673,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -690,7 +690,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -707,7 +707,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -724,7 +724,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -741,7 +741,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -758,7 +758,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -775,7 +775,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -792,7 +792,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -809,7 +809,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -826,7 +826,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -843,7 +843,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -860,7 +860,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -877,7 +877,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -894,7 +894,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -911,7 +911,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -928,7 +928,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -945,7 +945,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -962,7 +962,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -979,7 +979,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -997,7 +997,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -1031,7 +1031,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -1048,7 +1048,7 @@
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
} }
@ -1609,7 +1609,7 @@
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1628,7 +1628,7 @@
"website": "https://ultimaker.com/products/materials/breakaway", "website": "https://ultimaker.com/products/materials/breakaway",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1647,7 +1647,7 @@
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1666,7 +1666,7 @@
"website": "https://ultimaker.com/products/materials/cpe", "website": "https://ultimaker.com/products/materials/cpe",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1685,7 +1685,7 @@
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1704,7 +1704,7 @@
"website": "https://ultimaker.com/products/materials/pc", "website": "https://ultimaker.com/products/materials/pc",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1723,7 +1723,7 @@
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1742,7 +1742,7 @@
"website": "https://ultimaker.com/products/materials/pp", "website": "https://ultimaker.com/products/materials/pp",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1761,7 +1761,7 @@
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1780,7 +1780,7 @@
"website": "https://ultimaker.com/products/materials/tpu-95a", "website": "https://ultimaker.com/products/materials/tpu-95a",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",
@ -1799,7 +1799,7 @@
"website": "https://ultimaker.com/products/materials/tough-pla", "website": "https://ultimaker.com/products/materials/tough-pla",
"author": { "author": {
"author_id": "UltimakerPackages", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "UltiMaker",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"description": "Professional 3D printing made accessible.", "description": "Professional 3D printing made accessible.",

View file

@ -1,66 +1,65 @@
{ {
"version": 2, "version": 2,
"name": "Sovol-SV01", "name": "Sovol-SV01",
"inherits": "fdmprinter", "inherits": "fdmprinter",
"metadata": { "metadata":
"visible": true, {
"author": "Sovol", "visible": true,
"manufacturer": "Sovol 3D", "author": "Sovol",
"file_formats": "text/x-gcode", "manufacturer": "Sovol 3D",
"has_variants": false, "file_formats": "text/x-gcode",
"has_machine_quality": false, "has_machine_quality": false,
"preferred_quality_type": "draft", "has_variants": false,
"machine_extruder_trains": { "machine_extruder_trains": { "0": "SV01_extruder_0" },
"0": "SV01_extruder_0" "preferred_quality_type": "draft"
} },
}, "overrides":
{
"overrides": { "acceleration_enabled": { "value": false },
"machine_name": { "default_value": "SV01" }, "acceleration_print": { "value": 500 },
"machine_extruder_count": { "default_value": 1 }, "acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
"machine_width": { "default_value": 280 }, "acceleration_travel": { "value": 500 },
"machine_depth": { "default_value": 260 }, "acceleration_travel_layer_0": { "value": "acceleration_travel" },
"machine_height": { "default_value": 300 }, "adhesion_type": { "value": "'skirt'" },
"machine_max_feedrate_x": { "value": 500 }, "infill_before_walls": { "value": false },
"machine_max_feedrate_y": { "value": 500 }, "infill_overlap": { "value": 30.0 },
"machine_max_feedrate_z": { "value": 10 }, "infill_pattern": { "value": "'lines'" },
"machine_max_feedrate_e": { "value": 50 }, "infill_wipe_dist": { "value": 0.0 },
"machine_max_acceleration_x": { "value": 500 }, "jerk_enabled": { "value": false },
"machine_max_acceleration_y": { "value": 500 }, "jerk_print": { "value": 8 },
"machine_max_acceleration_z": { "value": 100 }, "jerk_travel": { "value": "jerk_print" },
"machine_max_acceleration_e": { "value": 5000 }, "jerk_travel_layer_0": { "value": "jerk_travel" },
"machine_acceleration": { "value": 500 }, "machine_acceleration": { "value": 500 },
"machine_max_jerk_xy": { "value": 10 }, "machine_depth": { "default_value": 240 },
"machine_max_jerk_z": { "value": 0.4 }, "machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
"machine_max_jerk_e": { "value": 5 }, "machine_extruder_count": { "default_value": 1 },
"machine_heated_bed": { "default_value": true }, "machine_heated_bed": { "default_value": true },
"material_diameter": { "default_value": 1.75 }, "machine_height": { "default_value": 300 },
"acceleration_print": { "value": 500 }, "machine_max_acceleration_e": { "value": 5000 },
"acceleration_travel": { "value": 500 }, "machine_max_acceleration_x": { "value": 500 },
"acceleration_travel_layer_0": { "value": "acceleration_travel" }, "machine_max_acceleration_y": { "value": 500 },
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" }, "machine_max_acceleration_z": { "value": 100 },
"jerk_print": { "value": 8 }, "machine_max_feedrate_e": { "value": 50 },
"jerk_travel": { "value": "jerk_print" }, "machine_max_feedrate_x": { "value": 500 },
"jerk_travel_layer_0": { "value": "jerk_travel" }, "machine_max_feedrate_y": { "value": 500 },
"acceleration_enabled": { "value": false }, "machine_max_feedrate_z": { "value": 10 },
"jerk_enabled": { "value": false }, "machine_max_jerk_e": { "value": 5 },
"speed_print": { "value": 50.0 } , "machine_max_jerk_xy": { "value": 10 },
"skirt_brim_speed": { "value": "speed_layer_0" }, "machine_max_jerk_z": { "value": 0.4 },
"optimize_wall_printing_order": { "value": "True" }, "machine_name": { "default_value": "SV01" },
"material_initial_print_temperature": { "value": "material_print_temperature" }, "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" },
"material_final_print_temperature": { "value": "material_print_temperature" }, "machine_width": { "default_value": 280 },
"z_seam_type": { "value": "'back'" }, "material_diameter": { "default_value": 1.75 },
"z_seam_corner": { "value": "'z_seam_corner_weighted'" }, "material_final_print_temperature": { "value": "material_print_temperature" },
"infill_pattern": { "value": "'lines'" }, "material_initial_print_temperature": { "value": "material_print_temperature" },
"infill_before_walls": { "value": false }, "optimize_wall_printing_order": { "value": "True" },
"infill_overlap": { "value": 30.0 }, "retraction_amount": { "default_value": 3 },
"skin_overlap": { "value": 10.0 }, "retraction_speed": { "default_value": 50 },
"infill_wipe_dist": { "value": 0.0 }, "skin_overlap": { "value": 10.0 },
"wall_0_wipe_dist": { "value": 0.0 }, "skirt_brim_speed": { "value": "speed_layer_0" },
"retraction_amount": { "default_value": 3}, "speed_print": { "value": 50.0 },
"retraction_speed": { "default_value": 50}, "wall_0_wipe_dist": { "value": 0.0 },
"adhesion_type": { "value": "'skirt'" }, "z_seam_corner": { "value": "'z_seam_corner_weighted'" },
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n" }, "z_seam_type": { "value": "'back'" }
"machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X0 Y240 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" } }
} }
}

View file

@ -1,82 +1,82 @@
{ {
"version": 2, "version": 2,
"name": "Sovol-SV02", "name": "Sovol-SV02",
"inherits": "fdmprinter", "inherits": "fdmprinter",
"metadata": { "metadata":
"visible": true, {
"author": "Sovol", "visible": true,
"manufacturer": "Sovol 3D", "author": "Sovol",
"file_formats": "text/x-gcode", "manufacturer": "Sovol 3D",
"has_variants": false, "file_formats": "text/x-gcode",
"has_machine_quality": false, "has_machine_quality": false,
"preferred_quality_type": "draft", "has_variants": false,
"machine_extruder_trains": { "machine_extruder_trains":
"0": "SV02_extruder_0", {
"1": "SV02_extruder_1" "0": "SV02_extruder_0",
} "1": "SV02_extruder_1"
}, },
"preferred_quality_type": "draft"
"overrides": { },
"machine_name": { "default_value": "SV02" }, "overrides":
"machine_extruder_count": { "default_value": 2 }, {
"machine_heated_bed": { "default_value": true }, "acceleration_enabled": { "value": false },
"machine_width": { "default_value": 300 }, "acceleration_print": { "value": 500 },
"machine_depth": { "default_value": 250 }, "acceleration_travel": { "value": 500 },
"machine_height": { "default_value": 300 }, "acceleration_travel_layer_0": { "value": "acceleration_travel" },
"machine_center_is_zero": { "default_value": false }, "adhesion_extruder_nr": { "value": 1 },
"retraction_amount": { "default_value": 5}, "adhesion_type": { "value": "'skirt'" },
"retraction_speed": { "default_value": 50}, "brim_replaces_support": { "value": false },
"gantry_height": { "value": "30" }, "brim_width": { "value": 4 },
"speed_print": { "default_value": 50 }, "coasting_enable": { "default_value": true },
"default_material_print_temperature": { "value": 195 }, "default_material_print_temperature": { "value": 195 },
"material_initial_print_temperature": { "value": "material_print_temperature" }, "gantry_height": { "value": "30" },
"material_final_print_temperature": { "value": 195 }, "infill_before_walls": { "value": false },
"machine_max_feedrate_x": { "value": 500 }, "infill_overlap": { "value": 30.0 },
"machine_max_feedrate_y": { "value": 500 }, "infill_pattern": { "value": "'lines'" },
"machine_max_feedrate_z": { "value": 10 }, "infill_sparse_density": { "value": "15" },
"machine_max_feedrate_e": { "value": 50 }, "infill_wipe_dist": { "value": 0.0 },
"machine_max_acceleration_x": { "value": 500 }, "jerk_enabled": { "value": false },
"machine_max_acceleration_y": { "value": 500 }, "jerk_print": { "value": 8 },
"machine_max_acceleration_z": { "value": 100 }, "jerk_travel": { "value": "jerk_print" },
"machine_max_acceleration_e": { "value": 500 }, "jerk_travel_layer_0": { "value": "jerk_travel" },
"machine_acceleration": { "value": 500 }, "machine_acceleration": { "value": 500 },
"machine_center_is_zero": { "default_value": false },
"material_diameter": { "default_value": 1.75 }, "machine_depth": { "default_value": 240 },
"machine_end_gcode": { "default_value": "M104 S0 ;hotend off\nM140 S0 ;bed off\nG92 E0\nG1 F2000 E-100 ;retract filament 100mm\nG92 E0\nG1 F3000 X0 Y240 ;move bed for easy part removal\nM84 ;disable steppers" },
"acceleration_print": { "value": 500 }, "machine_extruder_count": { "default_value": 2 },
"acceleration_travel": { "value": 500 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"acceleration_travel_layer_0": { "value": "acceleration_travel" }, "machine_heated_bed": { "default_value": true },
"jerk_print": { "value": 8 }, "machine_height": { "default_value": 300 },
"jerk_travel": { "value": "jerk_print" }, "machine_max_acceleration_e": { "value": 500 },
"jerk_travel_layer_0": { "value": "jerk_travel" }, "machine_max_acceleration_x": { "value": 500 },
"acceleration_enabled": { "value": false }, "machine_max_acceleration_y": { "value": 500 },
"jerk_enabled": { "value": false }, "machine_max_acceleration_z": { "value": 100 },
"machine_max_jerk_xy": { "default_value": 5.0 }, "machine_max_feedrate_e": { "value": 50 },
"machine_max_jerk_z": { "default_value": 0.4 }, "machine_max_feedrate_x": { "value": 500 },
"machine_max_jerk_e": { "default_value": 5.0 }, "machine_max_feedrate_y": { "value": 500 },
"prime_tower_position_x": { "value": "240" }, "machine_max_feedrate_z": { "value": 10 },
"prime_tower_position_y": { "value": "190" }, "machine_max_jerk_e": { "default_value": 5.0 },
"prime_tower_size": { "value": "30" }, "machine_max_jerk_xy": { "default_value": 5.0 },
"prime_tower_wipe_enabled": { "default_value": true }, "machine_max_jerk_z": { "default_value": 0.4 },
"prime_tower_min_volume": { "value": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height'))/2"}, "machine_name": { "default_value": "SV02" },
"travel_retract_before_outer_wall": { "default_value": true }, "machine_start_gcode": { "default_value": "G21 ;metric values\nG28 ;home all\nG90 ;absolute positioning\nM107 ;start with the fan off\nG1 F2400 Z15.0 ;raise the nozzle 15mm\nM109 S{material_print_temperature} ;Set Extruder Temperature and Wait\nM190 S{material_bed_temperature}; Wait for bed temperature to reach target temp\nT0 ;Switch to Extruder 1\nG1 F3000 X5 Y10 Z0.2 ;move to prime start position\nG92 E0 ;reset extrusion distance\nG1 F600 X160 E5 ;prime nozzle in a line\nG1 F5000 X180 ;quick wipe\nG92 E0 ;reset extrusion distance" },
"infill_sparse_density": { "value": "15" }, "machine_width": { "default_value": 280 },
"infill_pattern": { "value": "'lines'" }, "material_diameter": { "default_value": 1.75 },
"infill_before_walls": { "value": false }, "material_final_print_temperature": { "value": 195 },
"infill_overlap": { "value": 30.0 }, "material_initial_print_temperature": { "value": "material_print_temperature" },
"skin_overlap": { "value": 10.0 }, "prime_tower_min_volume": { "value": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height'))/2" },
"infill_wipe_dist": { "value": 0.0 }, "prime_tower_position_x": { "value": "240" },
"wall_0_wipe_dist": { "value": 0.0 }, "prime_tower_position_y": { "value": "190" },
"adhesion_type": { "value": "'skirt'" }, "prime_tower_size": { "value": "30" },
"brim_replaces_support": { "value": false }, "prime_tower_wipe_enabled": { "default_value": true },
"skirt_gap": { "value": 2 }, "retraction_amount": { "default_value": 5 },
"skirt_line_count": { "value": 3 }, "retraction_speed": { "default_value": 50 },
"adhesion_extruder_nr": { "value": 1 }, "skin_overlap": { "value": 10.0 },
"brim_width": { "value": 4 }, "skirt_gap": { "value": 2 },
"coasting_enable": { "default_value": true }, "skirt_line_count": { "value": 3 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "speed_print": { "default_value": 50 },
"machine_start_gcode": { "default_value": "G21 ;metric values\nG28 ;home all\nG90 ;absolute positioning\nM107 ;start with the fan off\nG1 F2400 Z15.0 ;raise the nozzle 15mm\nM109 S{material_print_temperature} ;Set Extruder Temperature and Wait\nM190 S{material_bed_temperature}; Wait for bed temperature to reach target temp\nT0 ;Switch to Extruder 1\nG1 F3000 X5 Y10 Z0.2 ;move to prime start position\nG92 E0 ;reset extrusion distance\nG1 F600 X160 E5 ;prime nozzle in a line\nG1 F5000 X180 ;quick wipe\nG92 E0 ;reset extrusion distance" }, "top_bottom_thickness": { "default_value": 1 },
"machine_end_gcode": { "default_value": "M104 S0 ;hotend off\nM140 S0 ;bed off\nG92 E0\nG1 F2000 E-100 ;retract filament 100mm\nG92 E0\nG1 F3000 X0 Y240 ;move bed for easy part removal\nM84 ;disable steppers" }, "travel_retract_before_outer_wall": { "default_value": true },
"top_bottom_thickness": { "default_value": 1 } "wall_0_wipe_dist": { "value": 0.0 }
} }
} }

View file

@ -0,0 +1,69 @@
{
"version": 2,
"name": "AnkerMake M5",
"inherits": "fdmprinter",
"metadata":
{
"visible": true,
"author": "just-trey",
"manufacturer": "AnkerMake",
"file_formats": "text/x-gcode",
"platform": "ankermake_m5_platform.obj",
"has_machine_quality": true,
"machine_extruder_trains": { "0": "ankermake_m5_extruder_0" },
"platform_texture": "ankermake_m5.png",
"preferred_material": "generic_pla",
"preferred_quality_type": "normal"
},
"overrides":
{
"acceleration_print": { "value": "2500" },
"adhesion_type": { "default_value": "skirt" },
"cool_min_layer_time": { "value": 6 },
"cool_min_speed": { "value": 30 },
"gantry_height": { "value": 25 },
"machine_depth": { "default_value": 235 },
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84" },
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "AnkerMake M5" },
"machine_start_gcode": { "default_value": "M104 S{material_print_temperature_layer_0} ; set final nozzle temp\nM190 S{material_bed_temperature_layer_0} ; set and wait for nozzle temp to stabilize\nM109 S{material_print_temperature_layer_0} ; wait for nozzle temp to stabilize\nG28 ;Home\nG1 E10 F3600; push out retracted filament(fix for over retraction after prime)" },
"machine_width": { "default_value": 235 },
"material_bed_temperature": { "maximum_value_warning": "110" },
"material_bed_temperature_layer_0":
{
"maximum_value_warning": "110",
"value": "material_bed_temperature + 5"
},
"material_diameter": { "default_value": 1.75 },
"material_flow_layer_0": { "value": 120 },
"material_print_temperature": { "maximum_value_warning": "260" },
"material_print_temperature_layer_0":
{
"maximum_value_warning": "260",
"value": "material_print_temperature + 5"
},
"retraction_amount": { "default_value": 1.5 },
"retraction_combing": { "value": "infill" },
"retraction_speed": { "default_value": 70 },
"skin_monotonic": { "default_value": true },
"speed_infill": { "maximum_value_warning": 255 },
"speed_print":
{
"maximum_value_warning": 255,
"value": 250.0
},
"speed_topbottom": { "value": 150.0 },
"speed_travel": { "value": 250.0 },
"speed_wall":
{
"maximum_value_warning": 255,
"value": 150.0
},
"speed_wall_x":
{
"maximum_value_warning": 255,
"value": 250.0
}
}
}

View file

@ -29,7 +29,7 @@
"machine_center_is_zero": { "default_value": false }, "machine_center_is_zero": { "default_value": false },
"gantry_height": { "value": "0" }, "gantry_height": { "value": "0" },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X50 F500 ; wipe away from the filament line\nG1 X100 F9000 ; Quickly wipe away from the filament line" }, "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM900 K0 ; disable lin. adv. if not set in GCODE\nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X50 F500 ; wipe away from the filament line\nG1 X100 F9000 ; Quickly wipe away from the filament line" },
"machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" }, "machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" },
"machine_max_acceleration_x": { "value": 3000 }, "machine_max_acceleration_x": { "value": 3000 },

View file

@ -0,0 +1,25 @@
{
"version": 2,
"name": "Artillery Hornet",
"inherits": "artillery_base",
"metadata":
{
"visible": true,
"author": "Wilds",
"platform": "artillery_hornet.stl",
"platform_offset": [
0,
-105.5,
0
],
"quality_definition": "artillery_base"
},
"overrides":
{
"gantry_height": { "value": 25 },
"machine_depth": { "default_value": 220 },
"machine_height": { "default_value": 250 },
"machine_name": { "default_value": "Artillery Hornet" },
"machine_width": { "default_value": 220 }
}
}

View file

@ -0,0 +1,65 @@
{
"version": 2,
"name": "Biqu Hurakan",
"inherits": "biqu_base",
"metadata":
{
"visible": true,
"platform": "BIQU_Hurakan_bed.stl",
"has_machine_materials": true,
"platform_offset": [
0,
0,
0.01
],
"quality_definition": "biqu_base"
},
"overrides":
{
"acceleration_print": { "value": 3000 },
"acceleration_travel": { "value": 3000 },
"coasting_enable": { "value": false },
"fill_outline_gaps": { "value": true },
"gantry_height": { "value": 35 },
"infill_overlap": { "value": 15.0 },
"jerk_print": { "value": 12 },
"machine_acceleration": { "value": 3000 },
"machine_depth": { "value": 235 },
"machine_end_gcode": { "default_value": ";BIQU Hurakan end code. More complex. Such wow. Klipper4Life.\r\n\r\nEND_PRINT" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-31, -35.3],
[-31, 25.5],
[31, 25.5],
[31, -35.5]
]
},
"machine_height": { "value": 270 },
"machine_max_acceleration_e": { "value": 10000 },
"machine_max_acceleration_x": { "value": 3000 },
"machine_max_acceleration_y": { "value": 3000 },
"machine_max_acceleration_z": { "value": 100 },
"machine_name": { "default_value": "Biqu Hurakan" },
"machine_start_gcode": { "default_value": ";BIQU Hurakan start code. Much complex. Very wow. Klipper FTW.\r\n\r\nSTART_PRINT BED_TEMP={material_bed_temperature_layer_0} EXTRUDER_TEMP={material_print_temperature_layer_0}\r\n\r\n; Note: This start/end code is designed to work\r\n; with the stock cfg files provided with the \r\n; BIQU Hurakan. If you alter the macros in the \r\n; cfg files then you may also need to alter this code.\r\n\r\n; Another note: This profile will get you \r\n; part of the way to good prints.\r\n; You still need to tweak settings for each \r\n; different filament that you use.\r\n; Settings such as retraction distance/speed, \r\n; flow, pressure advance, bed/nozzle temperatures\r\n; and others may need to be adjusted.\r\n; Use https://teachingtechyt.github.io/calibration.html to calibrate.\r\n; Also see https://www.youtube.com/watch?v=Ae2G7hl_pZc\r\n; for some good tips." },
"machine_width": { "value": 235 },
"retract_at_layer_change": { "value": true },
"retraction_amount": { "value": 3.0 },
"retraction_extrusion_window": { "value": 3.0 },
"retraction_speed": { "value": 45 },
"roofing_layer_count": { "value": 2 },
"skin_overlap": { "value": 15.0 },
"speed_layer_0": { "value": 25 },
"speed_print": { "value": 120 },
"speed_travel": { "value": 200 },
"speed_wall_0": { "value": 60 },
"speed_wall_x": { "value": 75 },
"support_angle": { "value": 45 },
"support_enable": { "value": false },
"support_infill_rate": { "value": 20 },
"support_structure": { "value": "'normal'" },
"support_type": { "value": "'buildplate'" },
"top_thickness": { "value": 1.0 },
"xy_offset_layer_0": { "value": -0.1 }
}
}

View file

@ -0,0 +1,28 @@
{
"version": 2,
"name": "Creality CR-10 Smart",
"inherits": "creality_base",
"metadata":
{
"visible": true,
"author": "ed3d.net",
"quality_definition": "creality_base"
},
"overrides":
{
"gantry_height": { "value": 35 },
"machine_depth": { "default_value": 300 },
"machine_head_with_fans_polygon":
{
"default_value": [
[-26, 34],
[-26, -32],
[32, -32],
[32, 34]
]
},
"machine_height": { "default_value": 400 },
"machine_name": { "default_value": "Creality CR-10 Smart" },
"machine_width": { "default_value": 300 }
}
}

View file

@ -0,0 +1,32 @@
{
"version": 2,
"name": "Creality Sermoon V1 & V1 Pro",
"inherits": "creality_base",
"metadata":
{
"visible": true,
"author": "Luis Gabriel Gomez",
"has_variants": true,
"quality_definition": "creality_base"
},
"overrides":
{
"gantry_height": { "value": 25 },
"machine_center_is_zero": { "default_value": false },
"machine_depth": { "default_value": 175 },
"machine_end_gcode": { "default_value": "; -- END GCODE --\nG91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z0.5 ;Raise Z more\nG90 ;Absolute positioning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-26, 34],
[-26, -32],
[32, -32],
[32, 34]
]
},
"machine_height": { "default_value": 165 },
"machine_name": { "default_value": "Creality Sermoon V1" },
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y170.0 Z0.28 F1500.0 E12 ;Draw the first line\nG1 X10.4 Y170.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up" },
"machine_width": { "default_value": 175 }
}
}

View file

@ -1,26 +1,27 @@
{ {
"name": "Dagoma Delta",
"version": 2, "version": 2,
"name": "Dagoma Delta",
"inherits": "fdmprinter", "inherits": "fdmprinter",
"metadata": { "metadata":
{
"visible": false, "visible": false,
"author": "Dagoma", "author": "Dagoma",
"manufacturer": "Dagoma" "manufacturer": "Dagoma",
"first_start_actions": [ "MachineSettingsAction" ]
}, },
"overrides": { "overrides":
"machine_width": { {
"default_value": 195.55 "adhesion_type": { "default_value": "skirt" },
}, "default_material_print_temperature": { "default_value": 205 },
"machine_height": { "gantry_height": { "value": "0" },
"default_value": 205 "infill_before_walls": { "value": "False" },
}, "inset_direction": { "value": "'inside_out'" },
"machine_depth": { "layer_height_0": { "default_value": 0.26 },
"default_value": 195.55 "machine_center_is_zero": { "default_value": true },
}, "machine_depth": { "default_value": 195.55 },
"machine_center_is_zero": { "machine_end_gcode": { "default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n" },
"default_value": true "machine_head_with_fans_polygon":
}, {
"machine_head_with_fans_polygon": {
"default_value": [ "default_value": [
[-36, -42], [-36, -42],
[-36, 42], [-36, 42],
@ -28,41 +29,14 @@
[36, -42] [36, -42]
] ]
}, },
"gantry_height": { "machine_height": { "default_value": 205 },
"value": "0" "machine_shape": { "default_value": "elliptic" },
}, "machine_start_gcode": { "default_value": ";Gcode by Cura\nG90\nG28\nM107\nM109 R100\nG29\nM109 S{material_print_temperature_layer_0} U-55 X55 V-85 Y-85 W0.26 Z0.26\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n" },
"machine_shape": { "machine_width": { "default_value": 195.55 },
"default_value": "elliptic" "retraction_amount": { "default_value": 3.8 },
}, "retraction_speed": { "default_value": 60 },
"machine_start_gcode": { "skirt_line_count": { "default_value": 2 },
"default_value": ";Gcode by Cura\nG90\nG28\nM107\nM109 R100\nG29\nM109 S{material_print_temperature_layer_0} U-55 X55 V-85 Y-85 W0.26 Z0.26\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n" "speed_print": { "default_value": 40 },
}, "top_bottom_thickness": { "default_value": 1 }
"machine_end_gcode": {
"default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n"
},
"default_material_print_temperature": {
"default_value": 205
},
"speed_print": {
"default_value": 40
},
"retraction_amount": {
"default_value": 3.8
},
"retraction_speed": {
"default_value": 60
},
"adhesion_type": {
"default_value": "skirt"
},
"skirt_line_count": {
"default_value": 2
},
"layer_height_0": {
"default_value": 0.26
},
"top_bottom_thickness": {
"default_value": 1
}
} }
} }

View file

@ -8,188 +8,33 @@
"author": "Dagoma", "author": "Dagoma",
"manufacturer": "Dagoma", "manufacturer": "Dagoma",
"file_formats": "text/x-gcode", "file_formats": "text/x-gcode",
"platform": "dagoma_pro_430_base.3mf", "platform": "dagoma_pro430.obj",
"platform_offset": [-125, -118, -280], "first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true, "has_machine_quality": true,
"has_materials": true, "has_materials": true,
"has_variants": true, "has_variants": true,
"variants_name": "Steel Nozzle Size", "variants_name": "Nozzle"
"preferred_material": "dagoma_generic_pla",
"preferred_quality_type": "high",
"preferred_variant_name": "0.4",
"exclude_materials":
[
"3D-Fuel_PLA_PRO_Black",
"3D-Fuel_PLA_SnapSupport",
"bestfilament_abs_skyblue",
"bestfilament_petg_orange",
"bestfilament_pla_green",
"chromatik_pla",
"dsm_arnitel2045_175",
"dsm_novamid1070_175",
"emotiontech_abs",
"emotiontech_absx",
"emotiontech_acetate",
"emotiontech_asax",
"emotiontech_bvoh",
"emotiontech_copa",
"emotiontech_hips",
"emotiontech_nylon_1030",
"emotiontech_nylon_1030cf",
"emotiontech_nylon_1070",
"emotiontech_pc",
"emotiontech_pekk",
"emotiontech_petg",
"emotiontech_pla",
"emotiontech_pla_hr_870",
"emotiontech_pva-m",
"emotiontech_pva-s",
"emotiontech_tpu98a",
"eryone_petg",
"eryone_pla",
"eryone_pla_glow",
"eryone_pla_matte",
"eryone_pla_wood",
"eSUN_PETG_Black",
"eSUN_PETG_Grey",
"eSUN_PETG_Purple",
"eSUN_PLA_PRO_Black",
"eSUN_PLA_PRO_Grey",
"eSUN_PLA_PRO_Purple",
"eSUN_PLA_PRO_White",
"Extrudr_GreenTECPro_Anthracite_175",
"Extrudr_GreenTECPro_Black_175",
"Extrudr_GreenTECPro_Blue_175",
"Extrudr_GreenTECPro_Nature_175",
"Extrudr_GreenTECPro_Red_175",
"Extrudr_GreenTECPro_Silver_175",
"Extrudr_GreenTECPro_White_175",
"fabtotum_abs",
"fabtotum_nylon",
"fabtotum_pla",
"fabtotum_tpu",
"fdplast_abs_tomato",
"fdplast_petg_gray",
"fdplast_pla_olive",
"fiberlogy_hd_pla",
"filo3d_pla",
"filo3d_pla_green",
"filo3d_pla_red",
"generic_bvoh_175",
"generic_hips_175",
"generic_pva_175",
"generic_tough_pla",
"goofoo_abs",
"goofoo_asa",
"goofoo_bronze_pla",
"goofoo_emarble_pla",
"goofoo_esilk_pla",
"goofoo_hips",
"goofoo_pa",
"goofoo_pa_cf",
"goofoo_pc",
"goofoo_peek",
"goofoo_petg",
"goofoo_pla",
"goofoo_pva",
"goofoo_tpe_83a",
"goofoo_tpu_87a",
"goofoo_tpu_95a",
"goofoo_wood_pla",
"imade3d_petg_175",
"imade3d_pla_175",
"innofill_innoflex60_175",
"layer_one_black_pla",
"layer_one_dark_gray_pla",
"layer_one_white_pla",
"leapfrog_abs_natural",
"leapfrog_epla_natural",
"leapfrog_pva_natural",
"octofiber_pla",
"polyflex_pla",
"polymax_pla",
"polyplus_pla",
"polywood_pla",
"redd_abs",
"redd_asa",
"redd_hips",
"redd_nylon",
"redd_petg",
"redd_pla",
"redd_tpe",
"structur3d_dap100silicone",
"tizyx_abs",
"tizyx_flex",
"tizyx_petg",
"tizyx_pla",
"tizyx_pla_bois",
"tizyx_pva",
"verbatim_bvoh_175",
"Vertex_Delta_ABS",
"Vertex_Delta_PET",
"Vertex_Delta_PLA",
"Vertex_Delta_PLA_Glitter",
"Vertex_Delta_PLA_Mat",
"Vertex_Delta_PLA_Satin",
"Vertex_Delta_PLA_Wood",
"Vertex_Delta_TPU",
"volumic_abs_ultra",
"volumic_arma_ultra",
"volumic_asa_ultra",
"volumic_br80_ultra",
"volumic_bumper_ultra",
"volumic_cu80_ultra",
"volumic_flex93_ultra",
"volumic_medical_ultra",
"volumic_nylon_ultra",
"volumic_pekk_carbone",
"volumic_petg_ultra",
"volumic_petgcarbone_ultra",
"volumic_pla_ultra",
"volumic_pp_ultra",
"volumic_strong_ultra",
"volumic_support_ultra",
"xyzprinting_abs",
"xyzprinting_antibact_pla",
"xyzprinting_carbon_fiber",
"xyzprinting_colorinkjet_pla",
"xyzprinting_flexible",
"xyzprinting_metallic_pla",
"xyzprinting_nylon",
"xyzprinting_petg",
"xyzprinting_pla",
"xyzprinting_tough_pla",
"zyyx_pro_flex",
"zyyx_pro_pla",
"xyzprinting_tpu"
]
}, },
"overrides": "overrides":
{ {
"machine_gcode_flavor": { "default_value": "Marlin" },
"machine_width": { "default_value": 430 },
"machine_depth": { "default_value": 320 },
"machine_heated_bed": { "default_value": true },
"machine_center_is_zero": { "default_value": false },
"machine_steps_per_mm_x": { "default_value": 80 },
"machine_steps_per_mm_y": { "default_value": 80 },
"machine_steps_per_mm_z": { "default_value": 800 },
"machine_max_feedrate_x": { "default_value": 500 },
"machine_max_feedrate_y": { "default_value": 500 },
"machine_max_feedrate_z": { "default_value": 16 },
"machine_max_acceleration_x": { "value": 1500 },
"machine_max_acceleration_y": { "value": 1500 },
"machine_max_acceleration_z": { "value": 70 },
"machine_max_acceleration_e": { "value": 10000 },
"machine_nozzle_cool_down_speed": { "default_value": 1.5 },
"machine_nozzle_heat_up_speed": { "default_value": 7 },
"machine_nozzle_expansion_angle": { "default_value": 60 },
"default_material_print_temperature": { "default_value": 205 },
"default_material_bed_temperature": { "default_value": 50 }, "default_material_bed_temperature": { "default_value": 50 },
"adhesion_type": { "default_value": "skirt" }, "default_material_print_temperature":
"skirt_line_count": { "default_value": 3 }, {
"nozzle_disallowed_areas": { "default_value": [ [[-215, 160], [-166, 160], [-215, 111]], [[215, 160], [166, 160], [215, 111]] ] }, "default_value": 205,
"machine_use_extruder_offset_to_offset_coords": {"default_value": false } "maximum_value": "430"
},
"infill_before_walls": { "value": "False" },
"inset_direction": { "value": "'inside_out'" },
"machine_depth": { "default_value": 320 },
"machine_gcode_flavor": { "default_value": "Marlin" },
"machine_heated_bed": { "default_value": true },
"machine_width": { "default_value": 430 },
"material_break_preparation_temperature": { "maximum_value": "430" },
"material_break_temperature": { "maximum_value": "430" },
"material_final_print_temperature": { "maximum_value": "430" },
"material_initial_print_temperature": { "maximum_value": "430" },
"material_print_temperature": { "maximum_value": "430" },
"material_print_temperature_layer_0": { "maximum_value": "430" },
"material_standby_temperature": { "maximum_value": "430" }
} }
} }

View file

@ -1,40 +1,47 @@
{ {
"version": 2, "version": 2,
"name": "Dagoma PRO 430B", "name": "Dagoma PRO 430 Bowden",
"inherits": "dagoma_pro_430_base", "inherits": "dagoma_pro_430_base",
"metadata": "metadata":
{ {
"visible": true, "visible": true,
"author": "Dagoma", "author": "Dagoma",
"manufacturer": "Dagoma", "manufacturer": "Dagoma",
"machine_extruder_trains": { "0": "dagoma_pro_430_bowden_extruder_0" } "machine_extruder_trains": { "0": "dagoma_pro_430_bowden_extruder" },
"preferred_quality_type": "h0.2",
"preferred_variant_name": "Brass 0.4mm"
}, },
"overrides": "overrides":
{ {
"machine_name": { "default_value": "Dagoma PRO 430B" },
"machine_extruder_count": { "default_value": 1 },
"machine_height": { "default_value": 360 },
"machine_head_with_fans_polygon": { "default_value": [ [-22.5, -22.5], [-22.5, 22.5], [22.5, 22.5], [22.5, -22.5] ] },
"gantry_height": { "value": "35" }, "gantry_height": { "value": "35" },
"machine_start_gcode": { "default_value": "\n;Start Gcode for {machine_name}\n;Author: Dagoma\n;Contact: contact-pro@dagoma3d.com\n\n;Sliced: {date} {time}\n\n;Estimated print time: {print_time}\n\n;Print speed: {speed_print}mm/s\n;Layer height: {layer_height}mm\n;Wall thickness: {wall_thickness}mm\n;Infill density: {infill_sparse_density}%\n;Infill pattern: {infill_pattern}\n;Support: {support_enable}\n;Print temperature: {material_print_temperature}°\n;Flow: {material_flow}%\n;Retraction amount: {retraction_amount}mm\n;Retraction speed: {retraction_retract_speed}mm/s\n\nG21 ;Set units to millimeters\nG90 ;Set all axes to absolute\nM140 S{material_bed_temperature} ;Preheat hotbed\nM117 Nozzle preheating ;Set message\nM109 R{material_standby_temperature} ;Preheat hotend before bed leveling\nM117 Hotbed preheating ;Set message\nM190 S{material_bed_temperature} ;Preheat hotbed before bed leveling\nG28 ;Go to origin on all axes\nG29 ; Bed Leveling\nG0 X215 Y1 Z0.4 ;Move XYZ axis before purge\nM117 Wait for print temp ;Set message\nM109 S{material_print_temperature_layer_0} ;Wait for initial print temp\nM83 ;Set E to relative positioning\nG1 E{retraction_amount} F200 ;Purge\nG0 Z3 ;Move Z axis before print start\nM82 ;Set E to absolute positioning\nG92 E0 ;Set E position\nG1 F{travel_speed} ;Set the feedrate to {travel_speed}mm/s\nM117 Print in progress ;Set message\n" }, "machine_end_gcode": { "default_value": ";End Gcode for {machine_name}\n;Author: Dagoma\n\nM104 S0 ;Set hotend temperature for cooldown\nM140 S0 ;Set hotbed temperature for cooldown\nG91 ;Set all axes to relative\nG0 Z+3 ;Move Z axis after print end\nG1 E-{retraction_amount} F5000 ;Retract filament to stop oozing\nG28 X Y ;Home the X and Y axes\nM18 ;Disable steppers motors\n" },
"machine_end_gcode": { "default_value": "\n;End Gcode for {machine_name}\n;Author: Dagoma\n\nM104 S0 ;Set hotend temperature for cooldown\nM140 S0 ;Set hotbed temperature for cooldown\nG91 ;Set all axes to relative\nG0 Z+3 ;Move Z axis after print end\nG1 E-{retraction_amount} F5000 ;Retract filament to stop oozing\nG90 ;Set all axes to absolute\nG28 X Y ;Home the X and Y axes\nM18 ;Disable steppers motors\nM117 Print end ;Set message\n" }, "machine_extruder_count": { "default_value": 1 },
"machine_acceleration": { "value": 1250 }, "machine_head_with_fans_polygon":
"machine_max_jerk_xy": { "value": 10 }, {
"machine_max_jerk_z": { "value": 0.3 }, "default_value": [
"machine_max_jerk_e": { "value": 5 }, [-22.5, -22.5],
"machine_max_feedrate_e": { "default_value": 200 }, [-22.5, 22.5],
"machine_steps_per_mm_e": { "default_value": 139.5 }, [22.5, 22.5],
"acceleration_enabled": { "value": true }, [22.5, -22.5]
"acceleration_print": { "value": "1250", "maximum_value": 1500 }, ]
"acceleration_layer_0": { "value": "acceleration_topbottom", "maximum_value": 1500 }, },
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 1250)", "maximum_value": 1500 }, "machine_height": { "default_value": 350 },
"acceleration_travel": { "value": "acceleration_print", "maximum_value": 1500 }, "machine_name": { "default_value": "Dagoma PRO 430 Bowden" },
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 1250)", "maximum_value": 1500 }, "machine_start_gcode": { "default_value": ";Start Gcode for {machine_name}\n;Author: Dagoma\n;Contact: contact-pro@dagoma3d.com\n\n;Sliced: {date} {time}\n;Estimated print time: {print_time}\n\n;Print speed: {speed_print}mm/s\n;Layer height: {layer_height}mm\n;Wall thickness: {wall_thickness}mm\n;Infill density: {infill_sparse_density}%\n;Infill pattern: {infill_pattern}\n;Support: {support_enable}\n;Print temperature: {material_print_temperature}\u00b0C\n;Flow: {material_flow}%\n;Retraction amount: {retraction_amount}mm\n;Retraction speed: {retraction_retract_speed}mm/s\n\nG21 ;Set units to millimeters\nG90 ;Set all axes to absolute\nM104 S120 ; Launch hotend heating up to 120\u00b0C\nM190 S{material_bed_temperature} ;Preheat hotbed\nM106 S255; Activating layers fans for checkup and minimise filament on t\nG28 ;Go to origin on all axes\nG29 ; Bed Leveling\nM107 ; Turn off Layers Fans\nG0 X215 Y1 Z0.4 ;Move XYZ axis before purge\nM109 S{material_print_temperature_layer_0} ;Wait for initial print temp\nM83 ;Set E to relative positioning\nG1 E{retraction_amount} F200 ;Purge\nG0 Z3 ;Move Z axis before print start\nM82 ;Set E to absolute positioning\nG92 E0 ;Set E position\nG1 F{speed_travel} ;Set the feedrate to {speed_travel}mm/s\n" },
"acceleration_wall_0": { "value": "math.ceil(acceleration_print * 800 / 1250)", "maximum_value": 1500 }, "nozzle_disallowed_areas":
"jerk_enabled": { "value": "True" }, {
"jerk_print": { "value": "8", "minimum_value_warning": 8 }, "default_value": [
"jerk_travel": {"value": "10", "minimum_value_warning": 8 }, [
"optimize_wall_printing_order": { "value": "True" } [-215, 160],
[-166, 160],
[-215, 111]
],
[
[215, 160],
[166, 160],
[215, 111]
]
]
}
} }
} }

View file

@ -0,0 +1,55 @@
{
"version": 2,
"name": "Dagoma PRO 430 Direct Drive",
"inherits": "dagoma_pro_430_base",
"metadata":
{
"visible": true,
"author": "Dagoma",
"manufacturer": "Dagoma",
"machine_extruder_trains": { "0": "dagoma_pro_430_directdrive_extruder" },
"preferred_quality_type": "h0.2",
"preferred_variant_name": "Brass 0.4mm"
},
"overrides":
{
"machine_end_gcode": { "default_value": ";End Gcode for {machine_name}\n;Author: Dagoma\n\nM104 S0 ;Set hotend temperature for cooldown\nM140 S0 ;Set hotbed temperature for cooldown\nG91 ;Set all axes to relative\nG0 Z+3 ;Move Z axis after print end\nG1 E-5 F5000 ;Retract filament to stop oozing\nG28 X Y ;Home the X and Y axes\nM18 ;Disable steppers motors\n" },
"machine_extruder_count": { "default_value": 1 },
"machine_height": { "default_value": 310 },
"machine_name": { "default_value": "Dagoma PRO 430 Direct Drive" },
"machine_start_gcode": { "default_value": ";Start Gcode for {machine_name}\n;Author: Dagoma\n;Contact: contact-pro@dagoma3d.com\n\n;Sliced: {date} {time}\n;Estimated print time: {print_time}\n\n;Print speed: {speed_print}mm/s\n;Layer height: {layer_height}mm\n;Wall thickness: {wall_thickness}mm\n;Infill density: {infill_sparse_density}%\n;Infill pattern: {infill_pattern}\n;Support: {support_enable}\n;Print temperature: {material_print_temperature}\u00b0C\n;Flow: {material_flow}%\n;Retraction amount: {retraction_amount}mm\n;Retraction speed: {retraction_retract_speed}mm/s\n\nG21 ;Set units to millimeters\nG90 ;Set all axes to absolute\nM104 S120 ; Launch hotend heating up to 120\u00b0C\nM190 S{material_bed_temperature} ;Preheat hotbed\nM106 S255; Activating layers fans for checkup and minimise filament on t\nG28 ;Go to origin on all axes\nG29 ; Bed Leveling\nM107 ; Turn off Layers Fans\nG0 X215 Y1 Z0.4 ;Move XYZ axis before purge\nM109 S{material_print_temperature_layer_0} ;Wait for initial print temp\nM83 ;Set E to relative positioning\nG1 E{retraction_amount} F200 ;Purge\nG0 Z3 ;Move Z axis before print start\nM82 ;Set E to absolute positioning\nG92 E0 ;Set E position\nG1 F{speed_travel} ;Set the feedrate to {speed_travel}mm/s\n" },
"nozzle_disallowed_areas":
{
"default_value": [
[
[-215, 160],
[-166, 160],
[-215, 111]
],
[
[215, 160],
[166, 160],
[215, 111]
],
[
[-215, 160],
[-200, 160],
[-200, -160],
[-215, -160]
],
[
[215, 160],
[200, 160],
[200, -160],
[215, -160]
],
[
[-215, 160],
[-215, 137.5],
[215, 137.5],
[215, 160]
]
]
}
}
}

View file

@ -0,0 +1,60 @@
{
"version": 2,
"name": "Dagoma PRO 430 Dual",
"inherits": "dagoma_pro_430_base",
"metadata":
{
"visible": true,
"author": "Dagoma",
"manufacturer": "Dagoma",
"machine_extruder_trains":
{
"0": "dagoma_pro_430_dual_extruder_left",
"1": "dagoma_pro_430_dual_extruder_right"
},
"preferred_quality_type": "h0.2",
"preferred_variant_name": "Brass 0.4mm",
"quality_definition": "dagoma_pro_430_bowden"
},
"overrides":
{
"machine_end_gcode": { "default_value": ";End Gcode for {machine_name}\n;Author: Dagoma\n\nM104 T0 S0 ;Set hotend temperature for cooldown\nM104 T1 S0 ;Set hotend temperature for cooldown\nM140 S0 ;Set hotbed temperature for cooldown\nG91 ;Set all axes to relative\nG0 Z+3 ;Move Z axis after print end\nG1 E-{retraction_amount} F5000 ;Retract filament to stop oozing\nG90 ;Set all axes to absolute\nG28 X Y ;Home the X and Y axes\nM84 ; Disable steppers motors\nM18 ;Disable steppers motors\nM117 Print end ;Set message\n" },
"machine_extruder_count": { "default_value": 2 },
"machine_height": { "default_value": 310 },
"machine_name": { "default_value": "Dagoma PRO 430 Dual" },
"machine_start_gcode": { "default_value": ";Start Gcode for {machine_name}\n;Author: Dagoma\n;Contact: contact-pro@dagoma3d.com\n\n;Sliced: {date} {time}\n;Estimated print time: {print_time}\n\n;Print speed: {speed_print}mm/s\n;Layer height: {layer_height}mm\n;Wall thickness: {wall_thickness}mm\n;Infill density: {infill_sparse_density}%\n;Infill pattern: {infill_pattern}\n;Support: {support_enable}\n;Print temperature: {material_print_temperature}\u00b0C\n;Flow: {material_flow}%\n;Retraction amount: {retraction_amount}mm\n;Retraction speed: {retraction_retract_speed}mm/s\n\nG21 ;Set units to millimeters\nG90 ;Set all axes to absolute\nM104 S120 ; Launch hotend heating up to 120\u00b0C\nM190 S{material_bed_temperature} ;Preheat hotbed\nM106 S255; Activating layers fans for checkup and minimise filament on t\nG28 ;Go to origin on all axes\nG29 ; Bed Leveling\nM107 ; Turn off Layers Fans\nG0 X215 Y1 Z0.4 ;Move XYZ axis before purge\nM109 S{material_print_temperature_layer_0} ;Wait for initial print temp\nM83 ;Set E to relative positioning\nG1 E{retraction_amount} F200 ;Purge\nG0 Z15.0 F6000 ;Move Z axis before print start\nM82 ;Set E to absolute positioning\nG92 E0 ;Set E position\nG1 F{travel_speed} ;Set the feedrate to {travel_speed}mm/s\n" },
"nozzle_disallowed_areas":
{
"default_value": [
[
[-215, 160],
[-166, 160],
[-215, 111]
],
[
[215, 160],
[166, 160],
[215, 111]
],
[
[-215, 160],
[-154, 160],
[-154, -160],
[-215, -160]
],
[
[215, 160],
[154, 160],
[154, -160],
[215, -160]
],
[
[-215, 160],
[-215, 125],
[215, 125],
[215, 160]
]
]
}
}
}

View file

@ -0,0 +1,27 @@
{
"version": 2,
"name": "Dagoma Sigma",
"inherits": "dagoma_delta",
"metadata":
{
"visible": true,
"author": "Dagoma",
"manufacturer": "Dagoma",
"file_formats": "text/x-gcode",
"platform": "dagoma_sigma.obj",
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"machine_extruder_trains": { "0": "dagoma_sigma_extruder" },
"preferred_quality_type": "h0.2",
"preferred_variant_name": "0.4mm",
"variants_name": "Nozzle"
},
"overrides":
{
"machine_end_gcode": { "default_value": ";End Gcode for {machine_name}\n;Author: Dagoma\n\nM104 S0\nM107\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n" },
"machine_name": { "default_value": "Dagoma Sigma" },
"machine_start_gcode": { "default_value": ";Start Gcode for {machine_name}\n;Author: Dagoma\n\n;Sliced: {date} {time}\n;Estimated print time: {print_time}\n\n;Print speed: {speed_print}mm/s\n;Layer height: {layer_height}mm\n;Wall thickness: {wall_thickness}mm\n;Infill density: {infill_sparse_density}%\n;Infill pattern: {infill_pattern}\n;Support: {support_enable}\n;Print temperature: {material_print_temperature}\u00b0C\n;Flow: {material_flow}%\n;Retraction amount: {retraction_amount}mm\n;Retraction speed: {retraction_retract_speed}mm/s\n\nG90 ;absolute positioning\nM104 S120 ;Launch heating up to 120\u00b0C\nM106 S255 ;Activating layers fans\nG29 ;Homing and Calibration\nM107 ;Off Ventilateur\nM109 S{material_print_temperature} U-55 X55 V-85 Y-85 W0.26 Z0.26 ;Temperature for the first layer only\nM82 ;Set extruder to absolute mode\nG92 E0 ;Zero the extruded length\nG1 F200 E6 ;Extrude 10mm of feed stock\nG92 E0 ;Zero the extruded length again\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F{speed_travel}\nM117 Printing...\n" },
"speed_travel": { "value": 150 }
}
}

View file

@ -0,0 +1,27 @@
{
"version": 2,
"name": "UMO+ DXU",
"inherits": "dxu",
"overrides": {
"machine_disallowed_areas": {
"default_value": [
[[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]]
]
},
"machine_width": { "default_value": 220 },
"machine_depth": { "default_value": 205 },
"machine_height": { "default_value": 200 },
"machine_nozzle_heat_up_speed": {
"default_value": 1.95
},
"machine_nozzle_cool_down_speed": {
"default_value": 0.8
},
"machine_start_gcode" : {
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"; Script based on an original created by tjjfvi (https://github.com/tjjfvi)\\n; An up-to-date version of the tjjfvi's original script can be found\\n; here: https://csi.t6.fyi/\\n; Note - This script will only work in Cura V4.2 and above!\\n; --- Global Settings\\n; layer_height = {layer_height}\\n; smooth_spiralized_contours = {smooth_spiralized_contours}\\n; magic_mesh_surface_mode = {magic_mesh_surface_mode}\\n; machine_extruder_count = {machine_extruder_count}\\n; --- Single Extruder Settings\\n; speed_z_hop = {speed_z_hop}\\n; retraction_amount = {retraction_amount}\\n; retraction_hop = {retraction_hop}\\n; retraction_hop_enabled = {retraction_hop_enabled}\\n; retraction_enable = {retraction_enable}\\n; retraction_speed = {retraction_speed}\\n; retraction_retract_speed = {retraction_retract_speed}\\n; retraction_prime_speed = {retraction_prime_speed}\\n; speed_travel = {speed_travel}\\n\\nM355 S1 P25;turn on case light\\n\\n;material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T{initial_extruder_nr} ;reset filament diameter\\nG28 ;home all\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM104 T{initial_extruder_nr} S{material_standby_temperature, initial_extruder_nr}\\nG0 X25 Y20 F7200 ;change Y20 to Y0 ansonl\\nG0 Z20 F2400\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nG0 X210 Y0 F7200\\nG92 E-12.0 ; increase purge 6.5 to 12\\nG1 E0 F200 ;purge nozzle ;change F45 to F200 like ultimaker code ansonl\\nG1 E-6.5 F1500\\nG1 E0 F1500\\nG1 Y50 F9000 ;add quick movement to Y50 like ultimaker code ansonl\\nM400 ;finish all moves\\nT{initial_extruder_nr}\\n;end of startup sequence\\n\\nM355 S1 P50;turn on case light\""
},
"machine_end_gcode" : {
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";end code from UM3\\nG91 ;Relative movement\\nG0 F15000 X8.0 Y8.0 Z3.5 E-4.5 ;Wiping+material retraction ;increase bed lower 0.5>5.0 and add Y movement\\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\\nG90 ;Disable relative movement\\n\\nG90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\\nM355 S0 ;turn off case light\""
}
}
}

View file

@ -0,0 +1,33 @@
{
"version": 2,
"name": "UMO+ DXU Dual",
"inherits": "dxu_dual",
"overrides": {
"machine_disallowed_areas": {
"default_value": [
[[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]]
]
},
"machine_width": { "default_value": 220 },
"machine_depth": { "default_value": 205 },
"machine_height": { "default_value": 200 },
"machine_nozzle_heat_up_speed": {
"default_value": 1.95
},
"machine_nozzle_cool_down_speed": {
"default_value": 0.8
},
"machine_nozzle_size": {
"default_value": 0.4
},
"material_diameter": {
"default_value": 1.75
},
"machine_start_gcode" : {
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"; Script based on an original created by tjjfvi (https://github.com/tjjfvi)\\n; An up-to-date version of the tjjfvi's original script can be found\\n; here: https://csi.t6.fyi/\\n; Note - This script will only work in Cura V4.2 and above!\\n; --- Global Settings\\n; layer_height = {layer_height}\\n; smooth_spiralized_contours = {smooth_spiralized_contours}\\n; magic_mesh_surface_mode = {magic_mesh_surface_mode}\\n; machine_extruder_count = {machine_extruder_count}\\n; --- Single Extruder Settings\\n; speed_z_hop = {speed_z_hop}\\n; retraction_amount = {retraction_amount}\\n; retraction_hop = {retraction_hop}\\n; retraction_hop_enabled = {retraction_hop_enabled}\\n; retraction_enable = {retraction_enable}\\n; retraction_speed = {retraction_speed}\\n; retraction_retract_speed = {retraction_retract_speed}\\n; retraction_prime_speed = {retraction_prime_speed}\\n; speed_travel = {speed_travel}\\n; --- Multi-Extruder Settings\\n; speed_z_hop_0 = {speed_z_hop, 0}\\n; speed_z_hop_1 = {speed_z_hop, 1}\\n; retraction_amount_0 = {retraction_amount, 0}\\n; retraction_amount_1 = {retraction_amount, 1}\\n; retraction_hop_0 = {retraction_hop, 0}\\n; retraction_hop_1 = {retraction_hop, 1}\\n; retraction_hop_enabled_0 = {retraction_hop_enabled, 0}\\n; retraction_hop_enabled_1 = {retraction_hop_enabled, 1}\\n; retraction_prime_speed_0 = {retraction_prime_speed, 0}\\n; retraction_prime_speed_1 = {retraction_prime_speed, 1}\\n; retraction_retract_speed_0 = {retraction_retract_speed, 0}\\n; retraction_retract_speed_1 = {retraction_retract_speed, 1}\\n; retraction_speed_0 = {retraction_speed, 0}\\n; retraction_speed_1 = {retraction_speed, 1}\\n; retraction_enable_0 = {retraction_enable, 0}\\n; retraction_enable_1 = {retraction_enable, 1}\\n; speed_travel_0 = {speed_travel, 0}\\n; speed_travel_1 = {speed_travel, 1}\\n\\nM355 S1 P25;turn on case light\\n\\n;material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y0 F7200 ;change Y20 to Y0 ansonl\\nG92 E0\\nG92 E-12.0 ;prime distance ;increase purge 6.5 to 12\\nG1 E0 F200 ;purge nozzle ;change F45 to F200 like ultimaker code ansonl\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y0 F7200 ;change Y20 to Y0 ansonl\\nG92 E0\\nG92 E-12.0\\nG1 E0 F200 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\nG1 Y100 F9000 ;add quick movement to Y50 like ultimaker code ansonl\\n;end of startup sequence\\n\\nM355 S1 P50;turn on case light\""
},
"machine_end_gcode" : {
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";end code from UM3\\nG91 ;Relative movement\\nG0 F15000 X8.0 Y8.0 Z3.5 E-4.5 ;Wiping+material retraction ;increase bed lower 0.5>5.0 and add Y movement\\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\\nG90 ;Disable relative movement\\n\\nG90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\\nM355 S0 ;turn off case light\""
}
}
}

View file

@ -14,10 +14,7 @@
"has_machine_quality": false, "has_machine_quality": false,
"preferred_material": "generic_pla", "preferred_material": "generic_pla",
"preferred_quality_type": "normal", "preferred_quality_type": "normal",
"machine_extruder_trains": "machine_extruder_trains": { "0": "fdmextruder" },
{
"0": "fdmextruder"
},
"supports_usb_connection": true, "supports_usb_connection": true,
"supports_network_connection": false "supports_network_connection": false
}, },
@ -291,7 +288,7 @@
{ {
"label": "Nozzle Angle", "label": "Nozzle Angle",
"description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.", "description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.",
"unit": "°", "unit": "\u00b0",
"type": "int", "type": "int",
"default_value": 45, "default_value": 45,
"maximum_value": "89", "maximum_value": "89",
@ -325,9 +322,9 @@
"machine_nozzle_heat_up_speed": "machine_nozzle_heat_up_speed":
{ {
"label": "Heat Up Speed", "label": "Heat Up Speed",
"description": "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.", "description": "The speed (\u00b0C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.",
"default_value": 2.0, "default_value": 2.0,
"unit": "°C/s", "unit": "\u00b0C/s",
"type": "float", "type": "float",
"enabled": "machine_nozzle_temp_enabled", "enabled": "machine_nozzle_temp_enabled",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -336,9 +333,9 @@
"machine_nozzle_cool_down_speed": "machine_nozzle_cool_down_speed":
{ {
"label": "Cool Down Speed", "label": "Cool Down Speed",
"description": "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.", "description": "The speed (\u00b0C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.",
"default_value": 2.0, "default_value": 2.0,
"unit": "°C/s", "unit": "\u00b0C/s",
"type": "float", "type": "float",
"enabled": "machine_nozzle_temp_enabled", "enabled": "machine_nozzle_temp_enabled",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -446,12 +443,11 @@
"label": "Machine Head & Fan Polygon", "label": "Machine Head & Fan Polygon",
"description": "The shape of the print head. These are coordinates relative to the position of the print head, which is usually the position of its first extruder. The dimensions left and in front of the print head must be negative coordinates.", "description": "The shape of the print head. These are coordinates relative to the position of the print head, which is usually the position of its first extruder. The dimensions left and in front of the print head must be negative coordinates.",
"type": "polygon", "type": "polygon",
"default_value": "default_value": [
[ [-20, 10],
[ -20, 10 ], [10, 10],
[ 10, 10 ], [10, -10],
[ 10, -10 ], [-20, -10]
[ -20, -10 ]
], ],
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
@ -568,7 +564,7 @@
{ {
"label": "Maximum Acceleration X", "label": "Maximum Acceleration X",
"description": "Maximum acceleration for the motor of the X-direction", "description": "Maximum acceleration for the motor of the X-direction",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 9000, "default_value": 9000,
"settable_per_mesh": false, "settable_per_mesh": false,
@ -579,7 +575,7 @@
{ {
"label": "Maximum Acceleration Y", "label": "Maximum Acceleration Y",
"description": "Maximum acceleration for the motor of the Y-direction.", "description": "Maximum acceleration for the motor of the Y-direction.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 9000, "default_value": 9000,
"settable_per_mesh": false, "settable_per_mesh": false,
@ -590,7 +586,7 @@
{ {
"label": "Maximum Acceleration Z", "label": "Maximum Acceleration Z",
"description": "Maximum acceleration for the motor of the Z-direction.", "description": "Maximum acceleration for the motor of the Z-direction.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 100, "default_value": 100,
"settable_per_mesh": false, "settable_per_mesh": false,
@ -601,7 +597,7 @@
{ {
"label": "Maximum Filament Acceleration", "label": "Maximum Filament Acceleration",
"description": "Maximum acceleration for the motor of the filament.", "description": "Maximum acceleration for the motor of the filament.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 10000, "default_value": 10000,
"settable_per_mesh": false, "settable_per_mesh": false,
@ -612,7 +608,7 @@
{ {
"label": "Default Acceleration", "label": "Default Acceleration",
"description": "The default acceleration of print head movement.", "description": "The default acceleration of print head movement.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 4000, "default_value": 4000,
"settable_per_mesh": false, "settable_per_mesh": false,
@ -1100,7 +1096,7 @@
"label": "Wall Transitioning Threshold Angle", "label": "Wall Transitioning Threshold Angle",
"description": "When to create transitions between even and odd numbers of walls. A wedge shape with an angle greater than this setting will not have transitions and no walls will be printed in the center to fill the remaining space. Reducing this setting reduces the number and length of these center walls, but may leave gaps or overextrude.", "description": "When to create transitions between even and odd numbers of walls. A wedge shape with an angle greater than this setting will not have transitions and no walls will be printed in the center to fill the remaining space. Reducing this setting reduces the number and length of these center walls, but may leave gaps or overextrude.",
"type": "float", "type": "float",
"unit": "°", "unit": "\u00b0",
"default_value": 10, "default_value": 10,
"minimum_value": "1", "minimum_value": "1",
"minimum_value_warning": "5", "minimum_value_warning": "5",
@ -1302,7 +1298,7 @@
"limit_to_extruder": "wall_0_extruder_nr", "limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"z_seam_type": "z_seam_type":
{ {
"label": "Z Seam Alignment", "label": "Z Seam Alignment",
"description": "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker.", "description": "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker.",
@ -1373,10 +1369,10 @@
"type": "enum", "type": "enum",
"options": "options":
{ {
"z_seam_corner_none": "None", "z_seam_corner_none": "None",
"z_seam_corner_inner": "Hide Seam", "z_seam_corner_inner": "Hide Seam",
"z_seam_corner_outer": "Expose Seam", "z_seam_corner_outer": "Expose Seam",
"z_seam_corner_any": "Hide or Expose Seam", "z_seam_corner_any": "Hide or Expose Seam",
"z_seam_corner_weighted": "Smart Hiding" "z_seam_corner_weighted": "Smart Hiding"
}, },
"default_value": "z_seam_corner_inner", "default_value": "z_seam_corner_inner",
@ -1780,7 +1776,7 @@
{ {
"label": "Ironing Acceleration", "label": "Ironing Acceleration",
"description": "The acceleration with which ironing is performed.", "description": "The acceleration with which ironing is performed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -1925,8 +1921,8 @@
"max_skin_angle_for_expansion": "max_skin_angle_for_expansion":
{ {
"label": "Maximum Skin Angle for Expansion", "label": "Maximum Skin Angle for Expansion",
"description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal and will cause no skin to be expanded, while an angle of 90° is vertical and will cause all skin to be expanded.", "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0\u00b0 is horizontal and will cause no skin to be expanded, while an angle of 90\u00b0 is vertical and will cause all skin to be expanded.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "2", "minimum_value_warning": "2",
@ -2232,7 +2228,7 @@
{ {
"label": "Minimum Infill Area", "label": "Minimum Infill Area",
"description": "Don't generate areas of infill smaller than this (use skin instead).", "description": "Don't generate areas of infill smaller than this (use skin instead).",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"default_value": 0, "default_value": 0,
@ -2252,8 +2248,8 @@
"infill_support_angle": "infill_support_angle":
{ {
"label": "Infill Overhang Angle", "label": "Infill Overhang Angle",
"description": "The minimum angle of internal overhangs for which infill is added. At a value of 0° objects are totally filled with infill, 90° will not provide any infill.", "description": "The minimum angle of internal overhangs for which infill is added. At a value of 0\u00b0 objects are totally filled with infill, 90\u00b0 will not provide any infill.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "2", "minimum_value_warning": "2",
@ -2279,27 +2275,27 @@
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
"skin_edge_support_layers": "skin_edge_support_layers":
{ {
"label": "Skin Edge Support Layers", "label": "Skin Edge Support Layers",
"description": "The number of infill layers that supports skin edges.", "description": "The number of infill layers that supports skin edges.",
"default_value": 4, "default_value": 4,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "10", "maximum_value_warning": "10",
"type": "int", "type": "int",
"maximum_value": "999999", "maximum_value": "999999",
"value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))", "value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))",
"limit_to_extruder": "infill_extruder_nr", "limit_to_extruder": "infill_extruder_nr",
"enabled": "infill_sparse_density > 0", "enabled": "infill_sparse_density > 0",
"settable_per_mesh": true "settable_per_mesh": true
} }
} }
}, },
"lightning_infill_support_angle": "lightning_infill_support_angle":
{ {
"label": "Lightning Infill Support Angle", "label": "Lightning Infill Support Angle",
"description": "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer.", "description": "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -2315,7 +2311,7 @@
{ {
"label": "Lightning Infill Overhang Angle", "label": "Lightning Infill Overhang Angle",
"description": "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness.", "description": "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -2331,7 +2327,7 @@
{ {
"label": "Lightning Infill Prune Angle", "label": "Lightning Infill Prune Angle",
"description": "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines.", "description": "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -2347,7 +2343,7 @@
{ {
"label": "Lightning Infill Straightening Angle", "label": "Lightning Infill Straightening Angle",
"description": "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line.", "description": "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -2375,7 +2371,7 @@
{ {
"label": "Default Printing Temperature", "label": "Default Printing Temperature",
"description": "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value", "description": "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 210, "default_value": 210,
"minimum_value_warning": "0", "minimum_value_warning": "0",
@ -2390,7 +2386,7 @@
{ {
"label": "Build Volume Temperature", "label": "Build Volume Temperature",
"description": "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted.", "description": "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 0, "default_value": 0,
"resolve": "min(extruderValues('build_volume_temperature'))", "resolve": "min(extruderValues('build_volume_temperature'))",
@ -2405,7 +2401,7 @@
{ {
"label": "Printing Temperature", "label": "Printing Temperature",
"description": "The temperature used for printing.", "description": "The temperature used for printing.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 210, "default_value": 210,
"value": "default_material_print_temperature", "value": "default_material_print_temperature",
@ -2421,7 +2417,7 @@
{ {
"label": "Printing Temperature Initial Layer", "label": "Printing Temperature Initial Layer",
"description": "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer.", "description": "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 215, "default_value": 215,
"value": "material_print_temperature", "value": "material_print_temperature",
@ -2437,7 +2433,7 @@
{ {
"label": "Initial Printing Temperature", "label": "Initial Printing Temperature",
"description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.", "description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 200, "default_value": 200,
"value": "max(-273.15, material_print_temperature - 10)", "value": "max(-273.15, material_print_temperature - 10)",
@ -2453,7 +2449,7 @@
{ {
"label": "Final Printing Temperature", "label": "Final Printing Temperature",
"description": "The temperature to which to already start cooling down just before the end of printing.", "description": "The temperature to which to already start cooling down just before the end of printing.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 195, "default_value": 195,
"value": "max(-273.15, material_print_temperature - 15)", "value": "max(-273.15, material_print_temperature - 15)",
@ -2469,7 +2465,7 @@
{ {
"label": "Extrusion Cool Down Speed Modifier", "label": "Extrusion Cool Down Speed Modifier",
"description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.", "description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.",
"unit": "°C/s", "unit": "\u00b0C/s",
"type": "float", "type": "float",
"default_value": 0.7, "default_value": 0.7,
"minimum_value": "0", "minimum_value": "0",
@ -2483,7 +2479,7 @@
{ {
"label": "Default Build Plate Temperature", "label": "Default Build Plate Temperature",
"description": "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value", "description": "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"resolve": "max(extruderValues('default_material_bed_temperature'))", "resolve": "max(extruderValues('default_material_bed_temperature'))",
"default_value": 60, "default_value": 60,
@ -2500,7 +2496,7 @@
{ {
"label": "Build Plate Temperature", "label": "Build Plate Temperature",
"description": "The temperature used for the heated build plate. If this is 0, the build plate is left unheated.", "description": "The temperature used for the heated build plate. If this is 0, the build plate is left unheated.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"default_value": 60, "default_value": 60,
"value": "default_material_bed_temperature", "value": "default_material_bed_temperature",
@ -2518,7 +2514,7 @@
{ {
"label": "Build Plate Temperature Initial Layer", "label": "Build Plate Temperature Initial Layer",
"description": "The temperature used for the heated build plate at the first layer. If this is 0, the build plate is left unheated during the first layer.", "description": "The temperature used for the heated build plate at the first layer. If this is 0, the build plate is left unheated during the first layer.",
"unit": "°C", "unit": "\u00b0C",
"type": "float", "type": "float",
"resolve": "max(extruderValues('material_bed_temperature_layer_0'))", "resolve": "max(extruderValues('material_bed_temperature_layer_0'))",
"default_value": 60, "default_value": 60,
@ -2674,7 +2670,7 @@
"label": "Break Preparation Temperature", "label": "Break Preparation Temperature",
"description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.", "description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.",
"type": "float", "type": "float",
"unit": "°C", "unit": "\u00b0C",
"default_value": 50, "default_value": 50,
"value": "material_print_temperature", "value": "material_print_temperature",
"enabled": false, "enabled": false,
@ -2715,7 +2711,7 @@
"label": "Break Temperature", "label": "Break Temperature",
"description": "The temperature at which the filament is broken for a clean break.", "description": "The temperature at which the filament is broken for a clean break.",
"type": "float", "type": "float",
"unit": "°C", "unit": "\u00b0C",
"default_value": 50, "default_value": 50,
"enabled": false, "enabled": false,
"minimum_value": "-273.15", "minimum_value": "-273.15",
@ -3034,7 +3030,7 @@
"label": "Standby Temperature", "label": "Standby Temperature",
"description": "The temperature of the nozzle when another nozzle is currently used for printing.", "description": "The temperature of the nozzle when another nozzle is currently used for printing.",
"type": "float", "type": "float",
"unit": "°C", "unit": "\u00b0C",
"default_value": 150, "default_value": 150,
"minimum_value": "-273.15", "minimum_value": "-273.15",
"minimum_value_warning": "0", "minimum_value_warning": "0",
@ -3363,7 +3359,7 @@
"speed_equalize_flow_width_factor": "speed_equalize_flow_width_factor":
{ {
"label": "Flow Equalization Ratio", "label": "Flow Equalization Ratio",
"description": "Extrusion width based correction factor on the speed. At 0% the movement speed is kept constant at the Print Speed. At 100% the movement speed is adjusted so that the flow (in mm³/s) is kept constant, i.e. lines half the normal Line Width are printed twice as fast and lines twice as wide are printed half as fast. A value larger than 100% can help to compensate for the higher pressure required to extrude wide lines.", "description": "Extrusion width based correction factor on the speed. At 0% the movement speed is kept constant at the Print Speed. At 100% the movement speed is adjusted so that the flow (in mm\u00b3/s) is kept constant, i.e. lines half the normal Line Width are printed twice as fast and lines twice as wide are printed half as fast. A value larger than 100% can help to compensate for the higher pressure required to extrude wide lines.",
"type": "float", "type": "float",
"unit": "%", "unit": "%",
"default_value": 100.0, "default_value": 100.0,
@ -3397,7 +3393,7 @@
{ {
"label": "Print Acceleration", "label": "Print Acceleration",
"description": "The acceleration with which printing happens.", "description": "The acceleration with which printing happens.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3411,7 +3407,7 @@
{ {
"label": "Infill Acceleration", "label": "Infill Acceleration",
"description": "The acceleration with which infill is printed.", "description": "The acceleration with which infill is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3426,7 +3422,7 @@
{ {
"label": "Wall Acceleration", "label": "Wall Acceleration",
"description": "The acceleration with which the walls are printed.", "description": "The acceleration with which the walls are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3441,7 +3437,7 @@
{ {
"label": "Outer Wall Acceleration", "label": "Outer Wall Acceleration",
"description": "The acceleration with which the outermost walls are printed.", "description": "The acceleration with which the outermost walls are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3456,7 +3452,7 @@
{ {
"label": "Inner Wall Acceleration", "label": "Inner Wall Acceleration",
"description": "The acceleration with which all inner walls are printed.", "description": "The acceleration with which all inner walls are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3473,7 +3469,7 @@
{ {
"label": "Top Surface Skin Acceleration", "label": "Top Surface Skin Acceleration",
"description": "The acceleration with which top surface skin layers are printed.", "description": "The acceleration with which top surface skin layers are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3488,7 +3484,7 @@
{ {
"label": "Top/Bottom Acceleration", "label": "Top/Bottom Acceleration",
"description": "The acceleration with which top/bottom layers are printed.", "description": "The acceleration with which top/bottom layers are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3503,7 +3499,7 @@
{ {
"label": "Support Acceleration", "label": "Support Acceleration",
"description": "The acceleration with which the support structure is printed.", "description": "The acceleration with which the support structure is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3520,7 +3516,7 @@
{ {
"label": "Support Infill Acceleration", "label": "Support Infill Acceleration",
"description": "The acceleration with which the infill of support is printed.", "description": "The acceleration with which the infill of support is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_support", "value": "acceleration_support",
@ -3536,7 +3532,7 @@
{ {
"label": "Support Interface Acceleration", "label": "Support Interface Acceleration",
"description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.", "description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_support", "value": "acceleration_support",
@ -3553,7 +3549,7 @@
{ {
"label": "Support Roof Acceleration", "label": "Support Roof Acceleration",
"description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", "description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')", "value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')",
@ -3569,7 +3565,7 @@
{ {
"label": "Support Floor Acceleration", "label": "Support Floor Acceleration",
"description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')", "value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')",
@ -3589,7 +3585,7 @@
{ {
"label": "Prime Tower Acceleration", "label": "Prime Tower Acceleration",
"description": "The acceleration with which the prime tower is printed.", "description": "The acceleration with which the prime tower is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"minimum_value": "0.1", "minimum_value": "0.1",
"minimum_value_warning": "100", "minimum_value_warning": "100",
@ -3605,7 +3601,7 @@
{ {
"label": "Travel Acceleration", "label": "Travel Acceleration",
"description": "The acceleration with which travel moves are made.", "description": "The acceleration with which travel moves are made.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 5000, "default_value": 5000,
"minimum_value": "0.1", "minimum_value": "0.1",
@ -3619,7 +3615,7 @@
{ {
"label": "Initial Layer Acceleration", "label": "Initial Layer Acceleration",
"description": "The acceleration for the initial layer.", "description": "The acceleration for the initial layer.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_print", "value": "acceleration_print",
@ -3634,7 +3630,7 @@
{ {
"label": "Initial Layer Print Acceleration", "label": "Initial Layer Print Acceleration",
"description": "The acceleration during the printing of the initial layer.", "description": "The acceleration during the printing of the initial layer.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_layer_0", "value": "acceleration_layer_0",
@ -3648,7 +3644,7 @@
{ {
"label": "Initial Layer Travel Acceleration", "label": "Initial Layer Travel Acceleration",
"description": "The acceleration for travel moves in the initial layer.", "description": "The acceleration for travel moves in the initial layer.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_layer_0 * acceleration_travel / acceleration_print", "value": "acceleration_layer_0 * acceleration_travel / acceleration_print",
@ -3665,7 +3661,7 @@
{ {
"label": "Skirt/Brim Acceleration", "label": "Skirt/Brim Acceleration",
"description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.", "description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "acceleration_layer_0", "value": "acceleration_layer_0",
@ -4057,7 +4053,7 @@
{ {
"label": "Retraction Extra Prime Amount", "label": "Retraction Extra Prime Amount",
"description": "Some material can ooze away during a travel move, which can be compensated for here.", "description": "Some material can ooze away during a travel move, which can be compensated for here.",
"unit": "mm³", "unit": "mm\u00b3",
"type": "float", "type": "float",
"default_value": 0, "default_value": 0,
"minimum_value_warning": "-0.0001", "minimum_value_warning": "-0.0001",
@ -4217,7 +4213,8 @@
"settable_per_extruder": true, "settable_per_extruder": true,
"settable_per_meshgroup": true "settable_per_meshgroup": true
}, },
"retraction_hop_enabled": { "retraction_hop_enabled":
{
"label": "Z Hop When Retracted", "label": "Z Hop When Retracted",
"description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", "description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.",
"type": "bool", "type": "bool",
@ -4226,7 +4223,8 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"retraction_hop_only_when_collides": { "retraction_hop_only_when_collides":
{
"label": "Z Hop Only Over Printed Parts", "label": "Z Hop Only Over Printed Parts",
"description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.",
"type": "bool", "type": "bool",
@ -4235,7 +4233,8 @@
"settable_per_mesh": true, "settable_per_mesh": true,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"retraction_hop": { "retraction_hop":
{
"label": "Z Hop Height", "label": "Z Hop Height",
"description": "The height difference when performing a Z Hop.", "description": "The height difference when performing a Z Hop.",
"unit": "mm", "unit": "mm",
@ -4247,7 +4246,8 @@
"settable_per_mesh": true, "settable_per_mesh": true,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"retraction_hop_after_extruder_switch": { "retraction_hop_after_extruder_switch":
{
"label": "Z Hop After Extruder Switch", "label": "Z Hop After Extruder Switch",
"description": "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print.", "description": "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print.",
"type": "bool", "type": "bool",
@ -4256,7 +4256,7 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"retraction_hop_after_extruder_switch_height": "retraction_hop_after_extruder_switch_height":
{ {
"label": "Z Hop After Extruder Switch Height", "label": "Z Hop After Extruder Switch Height",
"description": "The height difference when performing a Z Hop after extruder switch.", "description": "The height difference when performing a Z Hop after extruder switch.",
@ -4533,7 +4533,7 @@
{ {
"label": "Tree Support Branch Angle", "label": "Tree Support Branch Angle",
"description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.", "description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -4588,7 +4588,7 @@
{ {
"label": "Tree Support Branch Diameter Angle", "label": "Tree Support Branch Diameter Angle",
"description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.", "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "89.9999", "maximum_value": "89.9999",
@ -4634,8 +4634,8 @@
"support_angle": "support_angle":
{ {
"label": "Support Overhang Angle", "label": "Support Overhang Angle",
"description": "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support.", "description": "The minimum angle of overhangs for which support is added. At a value of 0\u00b0 all overhangs are supported, 90\u00b0 will not provide any support.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -4697,8 +4697,10 @@
"limit_to_extruder": "support_interface_extruder_nr", "limit_to_extruder": "support_interface_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"children": { "children":
"support_roof_wall_count": { {
"support_roof_wall_count":
{
"label": "Support Roof Wall Line Count", "label": "Support Roof Wall Line Count",
"description": "The number of walls with which to surround support interface roof. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", "description": "The number of walls with which to surround support interface roof. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.",
"default_value": 0, "default_value": 0,
@ -4713,7 +4715,8 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"support_bottom_wall_count": { "support_bottom_wall_count":
{
"label": "Support Bottom Wall Line Count", "label": "Support Bottom Wall Line Count",
"description": "The number of walls with which to surround support interface floor. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", "description": "The number of walls with which to surround support interface floor. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.",
"default_value": 0, "default_value": 0,
@ -4972,7 +4975,7 @@
{ {
"label": "Support Stair Step Minimum Slope Angle", "label": "Support Stair Step Minimum Slope Angle",
"description": "The minimum slope of the area for stair-stepping to take effect. Low values should make support easier to remove on shallower slopes, but really low values may result in some very counter-intuitive results on other parts of the model.", "description": "The minimum slope of the area for stair-stepping to take effect. Low values should make support easier to remove on shallower slopes, but really low values may result in some very counter-intuitive results on other parts of the model.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"default_value": 10.0, "default_value": 10.0,
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
@ -5053,11 +5056,11 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"minimum_support_area": "minimum_support_area":
{ {
"label": "Minimum Support Area", "label": "Minimum Support Area",
"description": "Minimum area size for support polygons. Polygons which have an area smaller than this value will not be generated.", "description": "Minimum area size for support polygons. Polygons which have an area smaller than this value will not be generated.",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"default_value": 0.0, "default_value": 0.0,
"minimum_value": "0", "minimum_value": "0",
@ -5148,7 +5151,8 @@
} }
} }
}, },
"support_interface_skip_height": { "support_interface_skip_height":
{
"label": "Support Interface Resolution", "label": "Support Interface Resolution",
"description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.", "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.",
"unit": "mm", "unit": "mm",
@ -5305,11 +5309,11 @@
} }
} }
}, },
"minimum_interface_area": "minimum_interface_area":
{ {
"label": "Minimum Support Interface Area", "label": "Minimum Support Interface Area",
"description": "Minimum area size for support interface polygons. Polygons which have an area smaller than this value will be printed as normal support.", "description": "Minimum area size for support interface polygons. Polygons which have an area smaller than this value will be printed as normal support.",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"default_value": 1.0, "default_value": 1.0,
"minimum_value": "0", "minimum_value": "0",
@ -5318,11 +5322,11 @@
"settable_per_mesh": true, "settable_per_mesh": true,
"children": "children":
{ {
"minimum_roof_area": "minimum_roof_area":
{ {
"label": "Minimum Support Roof Area", "label": "Minimum Support Roof Area",
"description": "Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will be printed as normal support.", "description": "Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will be printed as normal support.",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"default_value": 1.0, "default_value": 1.0,
"value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')", "value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')",
@ -5331,11 +5335,11 @@
"enabled": "support_roof_enable and (support_enable or support_meshes_present)", "enabled": "support_roof_enable and (support_enable or support_meshes_present)",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"minimum_bottom_area": "minimum_bottom_area":
{ {
"label": "Minimum Support Floor Area", "label": "Minimum Support Floor Area",
"description": "Minimum area size for the floors of the support. Polygons which have an area smaller than this value will be printed as normal support.", "description": "Minimum area size for the floors of the support. Polygons which have an area smaller than this value will be printed as normal support.",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"default_value": 1.0, "default_value": 1.0,
"value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')", "value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')",
@ -5360,7 +5364,7 @@
"settable_per_extruder": true, "settable_per_extruder": true,
"children": "children":
{ {
"support_roof_offset": "support_roof_offset":
{ {
"label": "Support Roof Horizontal Expansion", "label": "Support Roof Horizontal Expansion",
"description": "Amount of offset applied to the roofs of the support.", "description": "Amount of offset applied to the roofs of the support.",
@ -5374,7 +5378,7 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"support_bottom_offset": "support_bottom_offset":
{ {
"label": "Support Floor Horizontal Expansion", "label": "Support Floor Horizontal Expansion",
"description": "Amount of offset applied to the floors of the support.", "description": "Amount of offset applied to the floors of the support.",
@ -5492,7 +5496,7 @@
{ {
"label": "Tower Roof Angle", "label": "Tower Roof Angle",
"description": "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs.", "description": "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs.",
"unit": "°", "unit": "\u00b0",
"type": "int", "type": "int",
"minimum_value": "0", "minimum_value": "0",
"maximum_value": "90", "maximum_value": "90",
@ -5606,8 +5610,7 @@
"label": "Skirt/Brim Extruder", "label": "Skirt/Brim Extruder",
"description": "The extruder train to use for printing the skirt or brim. This is used in multi-extrusion.", "description": "The extruder train to use for printing the skirt or brim. This is used in multi-extrusion.",
"type": "optional_extruder", "type": "optional_extruder",
"default_value": "0", "default_value": "-1",
"value": "adhesion_extruder_nr",
"enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable'))", "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable'))",
"resolve": "'-1' if '-1' in extruderValues('skirt_brim_extruder_nr') else adhesion_extruder_nr", "resolve": "'-1' if '-1' in extruderValues('skirt_brim_extruder_nr') else adhesion_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
@ -5725,7 +5728,7 @@
} }
} }
}, },
"brim_gap": "brim_gap":
{ {
"label": "Brim Distance", "label": "Brim Distance",
"description": "The horizontal distance between the first brim line and the outline of the first layer of the print. A small gap can make the brim easier to remove while still providing the thermal benefits.", "description": "The horizontal distance between the first brim line and the outline of the first layer of the print. A small gap can make the brim easier to remove while still providing the thermal benefits.",
@ -5767,7 +5770,7 @@
"description": "If brim is only on outside then parts fully enclosed inside another part will get a brim which might overlap with the internal holes of the outer part. This setting controls how far to stay away from those internal holes. Set to a high value to prevent any brim from being generated for parts enclosed within the holes of other parts.", "description": "If brim is only on outside then parts fully enclosed inside another part will get a brim which might overlap with the internal holes of the outer part. This setting controls how far to stay away from those internal holes. Set to a high value to prevent any brim from being generated for parts enclosed within the holes of other parts.",
"unit": "mm", "unit": "mm",
"type": "float", "type": "float",
"default_value": 5, "default_value": 2.5,
"minimum_value": "0", "minimum_value": "0",
"enabled": "resolveOrValue('adhesion_type') == 'brim' and any(extruderValues('brim_outside_only'))", "enabled": "resolveOrValue('adhesion_type') == 'brim' and any(extruderValues('brim_outside_only'))",
"limit_to_extruder": "skirt_brim_extruder_nr", "limit_to_extruder": "skirt_brim_extruder_nr",
@ -6072,7 +6075,7 @@
{ {
"label": "Raft Print Acceleration", "label": "Raft Print Acceleration",
"description": "The acceleration with which the raft is printed.", "description": "The acceleration with which the raft is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"minimum_value": "0.1", "minimum_value": "0.1",
@ -6088,7 +6091,7 @@
{ {
"label": "Raft Top Print Acceleration", "label": "Raft Top Print Acceleration",
"description": "The acceleration with which the top raft layers are printed.", "description": "The acceleration with which the top raft layers are printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "raft_acceleration", "value": "raft_acceleration",
@ -6103,7 +6106,7 @@
{ {
"label": "Raft Middle Print Acceleration", "label": "Raft Middle Print Acceleration",
"description": "The acceleration with which the middle raft layer is printed.", "description": "The acceleration with which the middle raft layer is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "raft_acceleration", "value": "raft_acceleration",
@ -6118,7 +6121,7 @@
{ {
"label": "Raft Base Print Acceleration", "label": "Raft Base Print Acceleration",
"description": "The acceleration with which the base raft layer is printed.", "description": "The acceleration with which the base raft layer is printed.",
"unit": "mm/s²", "unit": "mm/s\u00b2",
"type": "float", "type": "float",
"default_value": 3000, "default_value": 3000,
"value": "raft_acceleration", "value": "raft_acceleration",
@ -6297,7 +6300,7 @@
{ {
"label": "Prime Tower Minimum Volume", "label": "Prime Tower Minimum Volume",
"description": "The minimum volume for each layer of the prime tower in order to purge enough material.", "description": "The minimum volume for each layer of the prime tower in order to purge enough material.",
"unit": "mm³", "unit": "mm\u00b3",
"type": "float", "type": "float",
"default_value": 6, "default_value": 6,
"minimum_value": "0", "minimum_value": "0",
@ -6350,7 +6353,7 @@
"description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't. Presently can't be used with the 'Raft' adhesion-type.", "description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't. Presently can't be used with the 'Raft' adhesion-type.",
"type": "bool", "type": "bool",
"enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') != 'raft')", "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') != 'raft')",
"resolve": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') in ('none', 'skirt'))", "resolve": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') in ('none', 'skirt', 'brim'))",
"default_value": false, "default_value": false,
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
@ -6371,7 +6374,7 @@
"label": "Ooze Shield Angle", "label": "Ooze Shield Angle",
"description": "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material.", "description": "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material.",
"type": "float", "type": "float",
"unit": "°", "unit": "\u00b0",
"enabled": "resolveOrValue('ooze_shield_enabled')", "enabled": "resolveOrValue('ooze_shield_enabled')",
"default_value": 60, "default_value": 60,
"resolve": "min(extruderValues('ooze_shield_angle'))", "resolve": "min(extruderValues('ooze_shield_angle'))",
@ -6424,7 +6427,7 @@
{ {
"label": "Interlocking Structure Orientation", "label": "Interlocking Structure Orientation",
"description": "The direction of the beams of the interlocking structure in the XY plane as a rotation about the Z axis.", "description": "The direction of the beams of the interlocking structure in the XY plane as a rotation about the Z axis.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 22.5, "default_value": 22.5,
@ -6538,7 +6541,7 @@
"label": "Nozzle Switch Extra Prime Amount", "label": "Nozzle Switch Extra Prime Amount",
"description": "Extra material to prime after nozzle switching.", "description": "Extra material to prime after nozzle switching.",
"type": "float", "type": "float",
"unit": "mm³", "unit": "mm\u00b3",
"default_value": 0, "default_value": 0,
"minimum_value_warning": "0", "minimum_value_warning": "0",
"maximum_value_warning": "100", "maximum_value_warning": "100",
@ -6678,7 +6681,7 @@
"label": "Maximum Extrusion Area Deviation", "label": "Maximum Extrusion Area Deviation",
"description": "The maximum extrusion area deviation allowed when removing intermediate points from a straight line. An intermediate point may serve as width-changing point in a long straight line. Therefore, if it is removed, it will cause the line to have a uniform width and, as a result, lose (or gain) a bit of extrusion area. If you increase this you may notice slight under- (or over-) extrusion in between straight parallel walls, as more intermediate width-changing points will be allowed to be removed. Your print will be less accurate, but the g-code will be smaller.", "description": "The maximum extrusion area deviation allowed when removing intermediate points from a straight line. An intermediate point may serve as width-changing point in a long straight line. Therefore, if it is removed, it will cause the line to have a uniform width and, as a result, lose (or gain) a bit of extrusion area. If you increase this you may notice slight under- (or over-) extrusion in between straight parallel walls, as more intermediate width-changing points will be allowed to be removed. Your print will be less accurate, but the g-code will be smaller.",
"type": "float", "type": "float",
"unit": "μm²", "unit": "\u03bcm\u00b2",
"default_value": 50000, "default_value": 50000,
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "500", "minimum_value_warning": "500",
@ -6782,8 +6785,8 @@
"mold_angle": "mold_angle":
{ {
"label": "Mold Angle", "label": "Mold Angle",
"description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", "description": "The angle of overhang of the outer walls created for the mold. 0\u00b0 will make the outer shell of the mold vertical, while 90\u00b0 will make the outside of the model follow the contour of the model.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "-89", "minimum_value": "-89",
"minimum_value_warning": "0", "minimum_value_warning": "0",
@ -6905,9 +6908,9 @@
{ {
"label": "Flow Temperature Graph", "label": "Flow Temperature Graph",
"description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).", "description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).",
"unit": "[[mm³,°C]]", "unit": "[[mm\u00b3,\u00b0C]]",
"type": "str", "type": "str",
"default_value": "[[3.5,200],[7.0,240]]", "default_value": "[[3.5, 200],[7.0, 240]]",
"enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature", "enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
@ -7030,8 +7033,8 @@
"conical_overhang_angle": "conical_overhang_angle":
{ {
"label": "Maximum Model Angle", "label": "Maximum Model Angle",
"description": "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way.", "description": "The maximum angle of overhangs after the they have been made printable. At a value of 0\u00b0 all overhangs are replaced by a piece of model connected to the build plate, 90\u00b0 will not change the model in any way.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "-89", "minimum_value": "-89",
"minimum_value_warning": "0", "minimum_value_warning": "0",
@ -7039,16 +7042,16 @@
"default_value": 50, "default_value": 50,
"enabled": "conical_overhang_enabled" "enabled": "conical_overhang_enabled"
}, },
"conical_overhang_hole_size": "conical_overhang_hole_size":
{ {
"label": "Maximum Overhang Hole Area", "label": "Maximum Overhang Hole Area",
"description": "The maximum area of a hole in the base of the model before it's removed by Make Overhang Printable. Holes smaller than this will be retained. A value of 0 mm² will fill all holes in the models base.", "description": "The maximum area of a hole in the base of the model before it's removed by Make Overhang Printable. Holes smaller than this will be retained. A value of 0 mm\u00b2 will fill all holes in the models base.",
"unit": "mm²", "unit": "mm\u00b2",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "0", "minimum_value_warning": "0",
"default_value": 0, "default_value": 0,
"enabled": "conical_overhang_enabled" "enabled": "conical_overhang_enabled"
}, },
"coasting_enable": "coasting_enable":
{ {
@ -7063,7 +7066,7 @@
{ {
"label": "Coasting Volume", "label": "Coasting Volume",
"description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.", "description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.",
"unit": "mm³", "unit": "mm\u00b3",
"type": "float", "type": "float",
"default_value": 0.064, "default_value": 0.064,
"minimum_value": "0", "minimum_value": "0",
@ -7076,7 +7079,7 @@
{ {
"label": "Minimum Volume Before Coasting", "label": "Minimum Volume Before Coasting",
"description": "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.", "description": "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.",
"unit": "mm³", "unit": "mm\u00b3",
"type": "float", "type": "float",
"default_value": 0.8, "default_value": 0.8,
"minimum_value": "0", "minimum_value": "0",
@ -7147,7 +7150,7 @@
{ {
"label": "Conical Support 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.", "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": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "-90", "minimum_value": "-90",
"minimum_value_warning": "-45", "minimum_value_warning": "-45",
@ -7191,7 +7194,7 @@
"limit_to_extruder": "wall_0_extruder_nr", "limit_to_extruder": "wall_0_extruder_nr",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"magic_fuzzy_skin_thickness": "magic_fuzzy_skin_thickness":
{ {
"label": "Fuzzy Skin Thickness", "label": "Fuzzy Skin Thickness",
"description": "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered.", "description": "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered.",
@ -7636,6 +7639,7 @@
"enabled": "adaptive_layer_height_enabled", "enabled": "adaptive_layer_height_enabled",
"unit": "mm", "unit": "mm",
"default_value": 0.1, "default_value": 0.1,
"minimum_value": "0.0",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false, "settable_per_extruder": false,
"settable_per_meshgroup": false "settable_per_meshgroup": false
@ -7669,7 +7673,7 @@
{ {
"label": "Overhanging Wall Angle", "label": "Overhanging Wall Angle",
"description": "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging. Overhang that gets supported by support will not be treated as overhang either.", "description": "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging. Overhang that gets supported by support will not be treated as overhang either.",
"unit": "°", "unit": "\u00b0",
"type": "float", "type": "float",
"minimum_value": "0", "minimum_value": "0",
"minimum_value_warning": "2", "minimum_value_warning": "2",
@ -7955,7 +7959,7 @@
"description": "Maximum material that can be extruded before another nozzle wipe is initiated. If this value is less than the volume of material required in a layer, the setting has no effect in this layer, i.e. it is limited to one wipe per layer.", "description": "Maximum material that can be extruded before another nozzle wipe is initiated. If this value is less than the volume of material required in a layer, the setting has no effect in this layer, i.e. it is limited to one wipe per layer.",
"default_value": 10, "default_value": 10,
"type": "float", "type": "float",
"unit": "mm³", "unit": "mm\u00b3",
"enabled": "clean_between_layers", "enabled": "clean_between_layers",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -7992,7 +7996,7 @@
{ {
"label": "Wipe Retraction Extra Prime Amount", "label": "Wipe Retraction Extra Prime Amount",
"description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.", "description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.",
"unit": "mm³", "unit": "mm\u00b3",
"type": "float", "type": "float",
"default_value": 0, "default_value": 0,
"value": "retraction_extra_prime_amount", "value": "retraction_extra_prime_amount",
@ -8277,4 +8281,4 @@
} }
} }
} }
} }

View file

@ -0,0 +1,161 @@
{
"version": 2,
"name": "Fusion3 Base Printer",
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "Keith Varin",
"manufacturer": "Fusion3Design",
"file_formats": "text/x-gcode",
"exclude_materials": [
"bestfilament_abs_skyblue",
"bestfilament_petg_orange",
"bestfilament_pla_green",
"chromatik_pla",
"dsm_arnitel2045_175",
"dsm_novamid1070_175",
"emotiontech_abs",
"emotiontech_absx",
"emotiontech_acetate",
"emotiontech_asax",
"emotiontech_bvoh",
"emotiontech_copa",
"emotiontech_hips",
"emotiontech_nylon_1030",
"emotiontech_nylon_1030cf",
"emotiontech_nylon_1070",
"emotiontech_pc",
"emotiontech_pekk",
"emotiontech_petg",
"emotiontech_pla",
"emotiontech_pla_hr_870",
"emotiontech_pva-m",
"emotiontech_pva-s",
"emotiontech_tpu98a",
"eryone_petg",
"eryone_pla",
"eryone_pla_glow",
"eryone_pla_matte",
"eryone_pla_wood",
"eSUN_PETG_Black",
"eSUN_PETG_Grey",
"eSUN_PETG_Purple",
"Extrudr_GreenTECPro_Anthracite_175",
"Extrudr_GreenTECPro_Black_175",
"Extrudr_GreenTECPro_Blue_175",
"Extrudr_GreenTECPro_Nature_175",
"Extrudr_GreenTECPro_Red_175",
"Extrudr_GreenTECPro_Silver_175",
"Extrudr_GreenTECPro_White_175",
"fabtotum_abs",
"fabtotum_nylon",
"fabtotum_pla",
"fabtotum_tpu",
"fdplast_abs_tomato",
"fdplast_petg_gray",
"fdplast_pla_olive",
"fiberlogy_hd_pla",
"filo3d_pla",
"filo3d_pla_green",
"filo3d_pla_red",
"generic_bam",
"generic_bvoh_175",
"generic_gffcpe",
"generic_gffpa",
"generic_hips",
"generic_hips_175",
"generic_pp",
"generic_pva",
"generic_pva_175",
"goofoo_abs",
"goofoo_asa",
"goofoo_bronze_pla",
"goofoo_emarble_pla",
"goofoo_esilk_pla",
"goofoo_hips",
"goofoo_pa",
"goofoo_pa_cf",
"goofoo_pc",
"goofoo_peek",
"goofoo_petg",
"goofoo_pla",
"goofoo_pva",
"goofoo_tpe_83a",
"goofoo_tpu_87a",
"goofoo_tpu_95a",
"goofoo_wood_pla",
"imade3d_petg_175",
"imade3d_pla_175",
"innofill_innoflex60_175",
"layer_one_black_pla",
"layer_one_dark_gray_pla",
"layer_one_white_pla",
"leapfrog_abs_natural",
"leapfrog_epla_natural",
"leapfrog_pva_natural",
"octofiber_pla",
"redd_abs",
"redd_asa",
"redd_hips",
"redd_nylon",
"redd_petg",
"redd_pla",
"redd_tpe",
"structur3d_dap100silicone",
"tizyx_abs",
"tizyx_flex",
"tizyx_petg",
"tizyx_pla",
"tizyx_pla_bois",
"tizyx_pva",
"verbatim_bvoh_175",
"Vertex_Delta_ABS",
"Vertex_Delta_PET",
"Vertex_Delta_PLA",
"Vertex_Delta_PLA_Glitter",
"Vertex_Delta_PLA_Mat",
"Vertex_Delta_PLA_Satin",
"Vertex_Delta_PLA_Wood",
"Vertex_Delta_TPU",
"volumic_abs_ultra",
"volumic_arma_ultra",
"volumic_asa_ultra",
"volumic_br80_ultra",
"volumic_bumper_ultra",
"volumic_cu80_ultra",
"volumic_flex93_ultra",
"volumic_medical_ultra",
"volumic_nylon_ultra",
"volumic_pekk_carbone",
"volumic_petgcarbone_ultra",
"volumic_petg_ultra",
"volumic_pla_ultra",
"volumic_pp_ultra",
"volumic_strong_ultra",
"volumic_support_ultra",
"xyzprinting_abs",
"xyzprinting_antibact_pla",
"xyzprinting_carbon_fiber",
"xyzprinting_colorinkjet_pla",
"xyzprinting_flexible",
"xyzprinting_metallic_pla",
"xyzprinting_nylon",
"xyzprinting_petg",
"xyzprinting_pla",
"xyzprinting_tough_pla",
"xyzprinting_tpu",
"zyyx_pro_flex",
"zyyx_pro_pla"
],
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"has_materials": true,
"has_variants": true,
"machine_extruder_trains": { "0": "fusion3_extruder_0" },
"preferred_material": "generic_abs",
"preferred_quality_type": "normal",
"preferred_variant_name": "0.4mm Nozzle",
"variants_name": "Nozzle Size"
}
}

View file

@ -0,0 +1,138 @@
{
"version": 2,
"name": "Fusion3 F410",
"inherits": "fusion3",
"metadata":
{
"visible": true,
"quality_definition": "fusion3"
},
"overrides":
{
"acceleration_print": { "value": "machine_acceleration" },
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
"acceleration_travel": { "value": "machine_acceleration" },
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
"adaptive_layer_height_variation": { "value": 0.04 },
"adaptive_layer_height_variation_step": { "value": 0.04 },
"adhesion_type": { "value": "'skirt'" },
"bottom_layers": { "value": "math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))" },
"brim_replaces_support": { "value": false },
"cool_fan_full_at_height": { "value": "layer_height_0 * 4" },
"cool_min_speed": { "value": "speed_print * 0.3" },
"gantry_height": { "value": 40 },
"infill_before_walls": { "value": false },
"infill_overlap": { "value": 20.0 },
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 89 else 'lines' if infill_sparse_density > 31 else 'cubic'" },
"infill_wipe_dist": { "value": 0.0 },
"jerk_print": { "value": 10 },
"jerk_travel": { "value": "jerk_print" },
"jerk_travel_layer_0": { "value": "jerk_travel" },
"machine_acceleration": { "value": 2000 },
"machine_depth": { "default_value": 355 },
"machine_end_gcode": { "default_value": "; Fusion3 F410 end code\nG91 ;relative positioning\nG1 E-5.00 F1000 ;retract 5mm of filament\nG1 Z+1.00 X-20.0 Y+20.0 F10000 ;short quick move to disengage from print\nG90 ;absolute positioning\nG1 X0.0 Y350.0 F9000 ; move head to back left corner\nG91 ; relative positioning\nG1 E-5.00 F500 ;retract additional filament to prevent oozing\nG90 ;absolute positioning\nM104 S0 ;turn off hotend\nM140 S0 ;turn off heatbed\n; Reset filament monitor\nM42 P63 S0\nG4 P100\nG4 P50\nM42 P63 S1\nG1 Z315 F1000 ;move print bed down to idle position\nM106 S0 ; shut off blower\nM84 ;motors off\nM561 ;clear bed probe transformation\n" },
"machine_gcode_flavor": { "default_value": "RepRap (RepRap)" },
"machine_head_with_fans_polygon":
{
"default_value": [
[-30, 30],
[-30, -30],
[30, -30],
[30, 30]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 315 },
"machine_max_acceleration_x": { "value": 5000 },
"machine_max_acceleration_y": { "value": 5000 },
"machine_max_acceleration_z": { "value": 500 },
"machine_max_feedrate_e": { "value": 166 },
"machine_max_feedrate_x": { "value": 550 },
"machine_max_feedrate_y": { "value": 550 },
"machine_max_feedrate_z": { "value": 40 },
"machine_max_jerk_e": { "value": 30 },
"machine_max_jerk_z": { "value": 1 },
"machine_name": { "default_value": "Fusion3 F410" },
"machine_start_gcode": { "default_value": "; Fusion3 F410 start code\nM104 S0 ; shutdown heater and prepare to print\nG21 ; set units to mm\nG90 ; use absolute coordinates\nT0 ; select tool 0\nG92 E0.0 ; reset e count\nM220 S100 ; reset speed multiplier\nM140 S{material_bed_temperature_layer_0} ; set bed temp and do not wait\nG32 ; call to run bed.g\nM190 S{material_bed_temperature_layer_0} ; Set bed temperature and wait\nM109 S{material_print_temperature_layer_0} ; set print head temperature and wait\n; === pause for heating ===\n; reset filament monitor\nM42 P63 S0\nG4 P100\nG4 P50\nM42 P63 S1\nG1 X350 Y0\nG1 Z10.0 F2000 ; move up\nG1 E10.0 F500 ; prime extruder\nG92 E0.0 ; reset e count\nG1 X330 Y15 F9000 ; move back\nG1 Z{layer_height_0} F1000 ; move down to begin wipe\nG1 X150 E4.0 F6000 ; wipe print head (extrude material while we do this)\nG92 E0.0 ; reset e count\n" },
"machine_width": { "default_value": 355 },
"material_final_print_temperature": { "value": "material_print_temperature" },
"material_initial_print_temperature": { "value": "material_print_temperature" },
"meshfix_maximum_resolution": { "value": "0.25" },
"meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" },
"minimum_interface_area": { "value": 10 },
"minimum_support_area": { "value": 2 },
"optimize_wall_printing_order": { "value": "True" },
"retract_at_layer_change": { "value": true },
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" },
"retraction_combing_max_distance": { "value": 30 },
"retraction_count_max": { "value": 100 },
"retraction_extrusion_window": { "value": 5 },
"retraction_hop": { "value": 0.2 },
"retraction_hop_enabled": { "value": true },
"retraction_prime_speed":
{
"maximum_value": "machine_max_feedrate_e",
"maximum_value_warning": "machine_max_feedrate_e *0.75"
},
"retraction_retract_speed":
{
"maximum_value": "machine_max_feedrate_e",
"maximum_value_warning": "machine_max_feedrate_e *0.75"
},
"retraction_speed":
{
"default_value": 100,
"maximum_value": "machine_max_feedrate_e",
"maximum_value_warning": "machine_max_feedrate_e *0.75"
},
"skin_overlap": { "value": 10.0 },
"skirt_gap": { "value": 10.0 },
"skirt_line_count": { "value": 3 },
"speed_infill": { "value": "speed_print *0.7" },
"speed_layer_0": { "value": "speed_print *0.4" },
"speed_prime_tower": { "value": "speed_topbottom" },
"speed_print": { "value": 100 },
"speed_support": { "value": "speed_wall_0" },
"speed_support_interface": { "value": "speed_topbottom" },
"speed_travel": { "value": "speed_print * 1.5" },
"speed_travel_layer_0": { "value": "speed_travel *0.5" },
"speed_wall": { "value": "speed_print *0.6" },
"speed_wall_x": { "value": "speed_print *0.85" },
"speed_z_hop": { "value": 5 },
"support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" },
"support_brim_enable": { "value": true },
"support_brim_width": { "value": 4 },
"support_infill_angles":
{
"value": [
45
]
},
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 30" },
"support_interface_density": { "value": 33.333 },
"support_interface_height": { "value": "layer_height * 4" },
"support_interface_pattern": { "value": "'grid'" },
"support_interface_skip_height": { "value": 0.2 },
"support_pattern": { "value": "'zigzag'" },
"support_use_towers": { "value": false },
"support_wall_count": { "value": 0 },
"support_xy_distance": { "value": "wall_line_width_0 * 3" },
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
"top_bottom_pattern": { "value": "'zigzag'" },
"top_bottom_pattern_0": { "value": "'zigzag'" },
"top_bottom_thickness":
{
"minimum_value_warning": "0.4",
"value": "(layer_height*3) + layer_height_0"
},
"top_layers": { "value": "math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))" },
"travel_avoid_other_parts": { "value": false },
"travel_avoid_supports": { "value": true },
"travel_retract_before_outer_wall": { "value": true },
"wall_0_wipe_dist": { "value": 0.0 },
"z_seam_corner": { "value": "'z_seam_corner_inner'" },
"z_seam_type": { "value": "'sharpest_corner'" }
}
}

View file

@ -2,13 +2,18 @@
"version": 2, "version": 2,
"name": "Ultimaker", "name": "Ultimaker",
"inherits": "fdmprinter", "inherits": "fdmprinter",
"metadata": { "metadata":
{
"visible": false,
"author": "Ultimaker", "author": "Ultimaker",
"manufacturer": "Ultimaker B.V.", "manufacturer": "Ultimaker B.V.",
"visible": false, "exclude_materials": [
"exclude_materials": [ "generic_hips", "structur3d_dap100silicone" ] "generic_hips",
"structur3d_dap100silicone"
]
}, },
"overrides": { "overrides":
{
"acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_layer_0": { "value": "acceleration_topbottom" },
"acceleration_travel_enabled": { "value": false }, "acceleration_travel_enabled": { "value": false },
"bottom_layers": { "value": "math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))" }, "bottom_layers": { "value": "math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))" },
@ -32,18 +37,16 @@
"bridge_wall_material_flow": { "value": "wall_material_flow" }, "bridge_wall_material_flow": { "value": "wall_material_flow" },
"bridge_wall_speed": { "value": "bridge_skin_speed" }, "bridge_wall_speed": { "value": "bridge_skin_speed" },
"cool_fan_speed_0": { "value": "cool_fan_speed_min" }, "cool_fan_speed_0": { "value": "cool_fan_speed_min" },
"gradual_support_infill_steps": { "value": "2 if support_interface_enable else 0" },
"gradual_support_infill_step_height": { "value": "4 * layer_height" }, "gradual_support_infill_step_height": { "value": "4 * layer_height" },
"gradual_support_infill_steps": { "value": "2 if support_interface_enable else 0" },
"infill_material_flow": { "value": "(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow" }, "infill_material_flow": { "value": "(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow" },
"inset_direction": { "value": "'outside_in'" }, "inset_direction": { "value": "'outside_in'" },
"jerk_infill": { "minimum_value_warning": 20 }, "jerk_infill": { "minimum_value_warning": 20 },
"jerk_wall": { "minimum_value_warning": 20 },
"jerk_wall_0": { "minimum_value_warning": 20 },
"jerk_prime_tower": { "minimum_value_warning": 20 }, "jerk_prime_tower": { "minimum_value_warning": 20 },
"jerk_print": "jerk_print":
{ {
"value": "20", "minimum_value_warning": 20,
"minimum_value_warning": 20 "value": "20"
}, },
"jerk_print_layer_0": { "value": "max(20, jerk_wall_0)" }, "jerk_print_layer_0": { "value": "max(20, jerk_wall_0)" },
"jerk_roofing": { "minimum_value_warning": 20 }, "jerk_roofing": { "minimum_value_warning": 20 },
@ -53,20 +56,22 @@
"jerk_topbottom": { "minimum_value_warning": 20 }, "jerk_topbottom": { "minimum_value_warning": 20 },
"jerk_travel": { "value": "jerk_print" }, "jerk_travel": { "value": "jerk_print" },
"jerk_travel_enabled": { "value": false }, "jerk_travel_enabled": { "value": false },
"jerk_wall": { "minimum_value_warning": 20 },
"jerk_wall_0": { "minimum_value_warning": 20 },
"layer_height_0": { "value": "max(0.2, layer_height)" }, "layer_height_0": { "value": "max(0.2, layer_height)" },
"line_width": { "value": "machine_nozzle_size" }, "line_width": { "value": "machine_nozzle_size" },
"machine_max_feedrate_e": { "default_value": 45 }, "machine_max_feedrate_e": { "default_value": 45 },
"material_bed_temperature": "material_bed_temperature":
{ {
"minimum_value": "0", "maximum_value_warning": "125",
"maximum_value_warning": "125" "minimum_value": "0"
}, },
"material_bed_temperature_layer_0": { "maximum_value_warning": "125" }, "material_bed_temperature_layer_0": { "maximum_value_warning": "125" },
"material_print_temperature": { "minimum_value": "0" }, "material_print_temperature": { "minimum_value": "0" },
"material_standby_temperature": "material_standby_temperature":
{ {
"value": "material_print_temperature - 100", "minimum_value": "0",
"minimum_value": "0" "value": "material_print_temperature - 100"
}, },
"meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" }, "meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" },
"meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" }, "meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },
@ -82,10 +87,11 @@
"raft_surface_speed": { "value": "speed_topbottom" }, "raft_surface_speed": { "value": "speed_topbottom" },
"relative_extrusion": "relative_extrusion":
{ {
"value": false, "enabled": false,
"enabled": false "value": false
}, },
"retraction_combing": { "value": "'no_outer_surfaces'" }, "retraction_combing": { "value": "'no_outer_surfaces'" },
"retraction_combing_max_distance": { "value": 15 },
"retraction_count_max": { "value": 25 }, "retraction_count_max": { "value": 25 },
"retraction_extrusion_window": { "value": 1 }, "retraction_extrusion_window": { "value": 1 },
"roofing_layer_count": { "value": "1" }, "roofing_layer_count": { "value": "1" },
@ -94,7 +100,7 @@
"skin_edge_support_thickness": { "value": "4 * layer_height if infill_sparse_density < 30 else 0" }, "skin_edge_support_thickness": { "value": "4 * layer_height if infill_sparse_density < 30 else 0" },
"skin_material_flow": { "value": "0.95 * material_flow" }, "skin_material_flow": { "value": "0.95 * material_flow" },
"skin_material_flow_layer_0": { "value": "0.85 * material_flow_layer_0" }, "skin_material_flow_layer_0": { "value": "0.85 * material_flow_layer_0" },
"skin_monotonic" : { "value": "roofing_layer_count == 0" }, "skin_monotonic": { "value": "roofing_layer_count == 0" },
"speed_equalize_flow_width_factor": { "value": "110.0" }, "speed_equalize_flow_width_factor": { "value": "110.0" },
"speed_layer_0": { "value": "min(30, layer_height / layer_height_0 * speed_wall_0)" }, "speed_layer_0": { "value": "min(30, layer_height / layer_height_0 * speed_wall_0)" },
"speed_slowdown_layers": { "value": 1 }, "speed_slowdown_layers": { "value": 1 },
@ -104,7 +110,7 @@
"support_interface_height": { "value": "2 * layer_height" }, "support_interface_height": { "value": "2 * layer_height" },
"support_interface_material_flow": { "value": "skin_material_flow" }, "support_interface_material_flow": { "value": "skin_material_flow" },
"support_interface_offset": { "value": "support_offset" }, "support_interface_offset": { "value": "support_offset" },
"support_interface_pattern": { "value": "'concentric'" }, "support_interface_pattern": { "value": "'zigzag'" },
"support_interface_skip_height": { "value": "layer_height" }, "support_interface_skip_height": { "value": "layer_height" },
"support_line_distance": { "minimum_value_warning": "0 if support_structure == 'tree' else support_line_width" }, "support_line_distance": { "minimum_value_warning": "0 if support_structure == 'tree' else support_line_width" },
"support_offset": { "value": "support_xy_distance if support_interface_enable else 0" }, "support_offset": { "value": "support_xy_distance if support_interface_enable else 0" },
@ -121,4 +127,4 @@
"xy_offset_layer_0": { "value": "-wall_line_width_0 / 5 + xy_offset" }, "xy_offset_layer_0": { "value": "-wall_line_width_0 / 5 + xy_offset" },
"zig_zaggify_support": { "value": true } "zig_zaggify_support": { "value": true }
} }
} }

View file

@ -0,0 +1,15 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata":
{
"machine": "ankermake_m5",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,15 @@
{
"version": 2,
"name": "Extruder",
"inherits": "fdmextruder",
"metadata":
{
"machine": "dagoma_pro_430_bowden",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -1,18 +0,0 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "dagoma_pro_430_bowden",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0
},
"material_diameter": {
"default_value": 1.75
}
}
}

View file

@ -0,0 +1,15 @@
{
"version": 2,
"name": "Extruder",
"inherits": "fdmextruder",
"metadata":
{
"machine": "dagoma_pro_430_directdrive",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,19 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata":
{
"machine": "dagoma_pro_430_dual",
"position": "0"
},
"overrides":
{
"extruder_nr":
{
"default_value": 0,
"maximum_value": "1"
},
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,19 @@
{
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata":
{
"machine": "dagoma_pro_430_dual",
"position": "1"
},
"overrides":
{
"extruder_nr":
{
"default_value": 1,
"maximum_value": "1"
},
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,16 @@
{
"version": 2,
"name": "Extruder",
"inherits": "fdmextruder",
"metadata":
{
"machine": "dagoma_sigma",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"machine_nozzle_size": { "default_value": 0.4 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,15 @@
{
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata":
{
"machine": "fusion3",
"position": "0"
},
"overrides":
{
"extruder_nr": { "default_value": 0 },
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -1,5 +1,5 @@
# Cura # Cura
# Copyright (C) 2022 Ultimaker B.V. # Copyright (C) 2022 UltiMaker.
# This file is distributed under the same license as the Cura package. # This file is distributed under the same license as the Cura package.
# Ultimaker <plugins@ultimaker.com>, 2022. # Ultimaker <plugins@ultimaker.com>, 2022.
# #
@ -424,8 +424,8 @@ msgstr "Nepodařilo se mi spustit nový proces přihlášení. Zkontrolujte, zda
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277
msgctxt "@info" msgctxt "@info"
msgid "Unable to reach the Ultimaker account server." msgid "Unable to reach the UltiMaker account server."
msgstr "Nelze se dostat na server účtu Ultimaker." msgstr "Nelze se dostat na server účtu UltiMaker."
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
@ -701,8 +701,8 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122
msgctxt "@action:button" msgctxt "@action:button"
msgid "Send crash report to Ultimaker" msgid "Send crash report to UltiMaker"
msgstr "Poslat záznam o pádu do Ultimakeru" msgstr "Poslat záznam o pádu do UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125
msgctxt "@action:button" msgctxt "@action:button"
@ -902,7 +902,7 @@ msgstr "Chyba sítě"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13
msgctxt "info:status" msgctxt "info:status"
msgid "New printer detected from your Ultimaker account" msgid "New printer detected from your UltiMaker account"
msgid_plural "New printers detected from your Ultimaker account" msgid_plural "New printers detected from your Ultimaker account"
msgstr[0] "Z vašeho Ultimaker účtu byla detekována nová tiskárna" msgstr[0] "Z vašeho Ultimaker účtu byla detekována nová tiskárna"
msgstr[1] "Z vašeho Ultimaker účtu byly detekovány nové tiskárny" msgstr[1] "Z vašeho Ultimaker účtu byly detekovány nové tiskárny"
@ -1056,8 +1056,8 @@ msgstr "Odstranit tiskárnu"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
msgctxt "@info:status" msgctxt "@info:status"
msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware."
msgstr "Pokoušíte se připojit k tiskárně, na které není spuštěna aplikace Ultimaker Connect. Aktualizujte tiskárnu na nejnovější firmware." msgstr "Pokoušíte se připojit k tiskárně, na které není spuštěna aplikace UltiMaker Connect. Aktualizujte tiskárnu na nejnovější firmware."
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21
msgctxt "@info:title" msgctxt "@info:title"
@ -1289,8 +1289,8 @@ msgstr "Nemohu zapsat do UFP souboru:"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22
msgctxt "@item:inlistbox" msgctxt "@item:inlistbox"
msgid "Ultimaker Format Package" msgid "UltiMaker Format Package"
msgstr "Balíček ve formátu Ultimaker" msgstr "Balíček ve formátu UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19
msgctxt "@text Placeholder for the username if it has been deleted" msgctxt "@text Placeholder for the username if it has been deleted"
@ -1411,8 +1411,8 @@ msgstr "Chcete synchronizovat materiálové a softwarové balíčky s vaším ú
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95
msgctxt "@info:title" msgctxt "@info:title"
msgid "Changes detected from your Ultimaker account" msgid "Changes detected from your UltiMaker account"
msgstr "Zjištěny změny z vašeho účtu Ultimaker" msgstr "Zjištěny změny z vašeho účtu UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147
msgctxt "@action:button" msgctxt "@action:button"
@ -1572,8 +1572,8 @@ msgstr "Nahlásit chybu"
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169
msgctxt "@message:description" msgctxt "@message:description"
msgid "Report a bug on Ultimaker Cura's issue tracker." msgid "Report a bug on UltiMaker Cura's issue tracker."
msgstr "Nahlásit chybu v Ultimaker Cura issue trackeru." msgstr "Nahlásit chybu v UltiMaker Cura issue trackeru."
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401
msgctxt "@info:status" msgctxt "@info:status"
@ -1702,8 +1702,8 @@ msgstr "Soubor projektu <filename>{0}</filename> je poškozený: <message>{1}</m
#: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723
#, python-brace-format #, python-brace-format
msgctxt "@info:error Don't translate the XML tag <filename>!" msgctxt "@info:error Don't translate the XML tag <filename>!"
msgid "Project file <filename>{0}</filename> is made using profiles that are unknown to this version of Ultimaker Cura." msgid "Project file <filename>{0}</filename> is made using profiles that are unknown to this version of UltiMaker Cura."
msgstr "Soubor projektu <filename>{0}</filename> je vytvořený profily, které jsou této verzi Ultimaker Cura neznámé." msgstr "Soubor projektu <filename>{0}</filename> je vytvořený profily, které jsou této verzi UltiMaker Cura neznámé."
#: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14
msgctxt "@label" msgctxt "@label"
@ -2348,8 +2348,8 @@ msgstr "Aktualizujte firmware tiskárny a spravujte frontu vzdáleně."
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287
msgctxt "@info" msgctxt "@info"
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v Ultimaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru." msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru."
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347
msgctxt "@label:status" msgctxt "@label:status"
@ -2714,8 +2714,8 @@ msgstr "Další informace o anonymním shromažďování údajů"
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73
msgctxt "@text:window" msgctxt "@text:window"
msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:"
msgstr "Ultimaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu. Níže uvádíme příklad všech sdílených dat:" msgstr "UltiMaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu. Níže uvádíme příklad všech sdílených dat:"
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107
msgctxt "@text:window" msgctxt "@text:window"
@ -2739,8 +2739,8 @@ msgstr "Uložit projekt Cura"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
msgctxt "@label" msgctxt "@label"
msgid "Please select any upgrades made to this Ultimaker Original" msgid "Please select any upgrades made to this UltiMaker Original"
msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu Ultimaker" msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39
msgctxt "@label" msgctxt "@label"
@ -2835,8 +2835,8 @@ msgstr "Nainstalovat moduly"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12
msgctxt "@text" msgctxt "@text"
msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users."
msgstr "Urychlete váš postup práce a přizpůsobte si zážitek s Ultimaker Cura pomocí modulů, kterými přispěla naše úžasná komunita uživatelů." msgstr "Urychlete váš postup práce a přizpůsobte si zážitek s UltiMaker Cura pomocí modulů, kterými přispěla naše úžasná komunita uživatelů."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15
msgctxt "@title" msgctxt "@title"
@ -2894,8 +2894,8 @@ msgstr "Instalovat materiály"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12
msgctxt "@text" msgctxt "@text"
msgid "Select and install material profiles optimised for your Ultimaker 3D printers." msgid "Select and install material profiles optimised for your UltiMaker 3D printers."
msgstr "Vyberte a nainstalujte materiálové profily optimalizované pro vaše 3D tiskárny Ultimaker." msgstr "Vyberte a nainstalujte materiálové profily optimalizované pro vaše 3D tiskárny UltiMaker."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32
msgctxt "@info:tooltip" msgctxt "@info:tooltip"
@ -3016,18 +3016,18 @@ msgstr "Načíst více"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Plug-in" msgid "UltiMaker Verified Plug-in"
msgstr "Modul ověřený společností Ultimaker" msgstr "Modul ověřený společností UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Certified Material" msgid "UltiMaker Certified Material"
msgstr "Materiál certifikovaný společností Ultimaker" msgstr "Materiál certifikovaný společností UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Package" msgid "UltiMaker Verified Package"
msgstr "Balíček ověřený společností Ultimaker" msgstr "Balíček ověřený společností UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11
msgctxt "@header" msgctxt "@header"
@ -3036,8 +3036,8 @@ msgstr "Spravovat balíčky"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15
msgctxt "@text" msgctxt "@text"
msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly."
msgstr "Zde můžete spravovat své Ultimaker Cura moduly a materiály. Udržujte své moduly aktuální a pravidelně zálohujte své nastavení." msgstr "Zde můžete spravovat své UltiMaker Cura moduly a materiály. Udržujte své moduly aktuální a pravidelně zálohujte své nastavení."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15
msgctxt "@title" msgctxt "@title"
@ -4308,8 +4308,8 @@ msgstr "Soukromí"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
msgctxt "@info:tooltip" msgctxt "@info:tooltip"
msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored."
msgstr "Měla by být anonymní data o vašem tisku zaslána společnosti Ultimaker? Upozorňujeme, že nejsou odesílány ani ukládány žádné modely, adresy IP ani jiné osobní údaje." msgstr "Měla by být anonymní data o vašem tisku zaslána společnosti UltiMaker? Upozorňujeme, že nejsou odesílány ani ukládány žádné modely, adresy IP ani jiné osobní údaje."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867
msgctxt "@option:check" msgctxt "@option:check"
@ -4623,8 +4623,8 @@ msgstr "Podpora při problémech"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19
msgctxt "@label" msgctxt "@label"
msgid "Sign in to the Ultimaker platform" msgid "Sign in to the UltiMaker platform"
msgstr "Přihlásit se do platformy Ultimaker" msgstr "Přihlásit se do platformy UltiMaker"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123
msgctxt "@text" msgctxt "@text"
@ -4638,8 +4638,8 @@ msgstr "Zálohovat a synchronizovat nastavení materiálů a moduly"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175
msgctxt "@text" msgctxt "@text"
msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community"
msgstr "Sdílejte nápady a získejte pomoc od více než 48 0000 uživatelů v Ultimaker komunitě" msgstr "Sdílejte nápady a získejte pomoc od více než 48 0000 uživatelů v UltiMaker komunitě"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189
msgctxt "@button" msgctxt "@button"
@ -4648,18 +4648,18 @@ msgstr "Přeskočit"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201
msgctxt "@text" msgctxt "@text"
msgid "Create a free Ultimaker Account" msgid "Create a free UltiMaker Account"
msgstr "Vytvořit účet Ultimaker zdarma" msgstr "Vytvořit účet UltiMaker zdarma"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
msgctxt "@label" msgctxt "@label"
msgid "Help us to improve Ultimaker Cura" msgid "Help us to improve UltiMaker Cura"
msgstr "Pomožte nám zlepšovat Ultimaker Cura" msgstr "Pomožte nám zlepšovat UltiMaker Cura"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
msgctxt "@text" msgctxt "@text"
msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:"
msgstr "Ultimaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu, včetně:" msgstr "UltiMaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu, včetně:"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68
msgctxt "@text" msgctxt "@text"
@ -4683,8 +4683,8 @@ msgstr "Nastavení tisku"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
msgctxt "@text" msgctxt "@text"
msgid "Data collected by Ultimaker Cura will not contain any personal information." msgid "Data collected by UltiMaker Cura will not contain any personal information."
msgstr "Data shromážděná společností Ultimaker Cura nebudou obsahovat žádné osobní údaje." msgstr "Data shromážděná společností UltiMaker Cura nebudou obsahovat žádné osobní údaje."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100
msgctxt "@text" msgctxt "@text"
@ -4754,8 +4754,8 @@ msgstr "Nelze se připojit k zařízení."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201
msgctxt "@label" msgctxt "@label"
msgid "Can't connect to your Ultimaker printer?" msgid "Can't connect to your UltiMaker printer?"
msgstr "Nemůžete se připojit k Vaší tiskárně Ultimaker?" msgstr "Nemůžete se připojit k Vaší tiskárně UltiMaker?"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200
msgctxt "@label" msgctxt "@label"
@ -4774,13 +4774,13 @@ msgstr "Připojit"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56
msgctxt "@label" msgctxt "@label"
msgid "Welcome to Ultimaker Cura" msgid "Welcome to UltiMaker Cura"
msgstr "Vítejte v Ultimaker Cura" msgstr "Vítejte v UltiMaker Cura"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
msgctxt "@text" msgctxt "@text"
msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments."
msgstr "Při nastavování postupujte podle těchto pokynů Ultimaker Cura. Bude to trvat jen několik okamžiků." msgstr "Při nastavování postupujte podle těchto pokynů UltiMaker Cura. Bude to trvat jen několik okamžiků."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82
msgctxt "@button" msgctxt "@button"
@ -5465,7 +5465,7 @@ msgstr "Komplexní řešení pro 3D tisk z taveného filamentu."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87
msgctxt "@info:credit" msgctxt "@info:credit"
msgid "" msgid ""
"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura is developed by UltiMaker in cooperation with the community.\n"
"Cura proudly uses the following open source projects:" "Cura proudly uses the following open source projects:"
msgstr "" msgstr ""
"Cura vyvíjí Ultimaker B.V. ve spolupráci s komunitou.\n" "Cura vyvíjí Ultimaker B.V. ve spolupráci s komunitou.\n"
@ -5674,23 +5674,23 @@ msgstr "Sledujte tiskové úlohy a znovu tiskněte z historie."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Extend Ultimaker Cura with plugins and material profiles." msgid "Extend UltiMaker Cura with plugins and material profiles."
msgstr "Rozšiřte Ultimaker Cura pomocí modulů a materiálových profilů." msgstr "Rozšiřte UltiMaker Cura pomocí modulů a materiálových profilů."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Become a 3D printing expert with Ultimaker e-learning." msgid "Become a 3D printing expert with UltiMaker e-learning."
msgstr "Staňte se expertem na 3D tisk díky Ultimaker e-learningu." msgstr "Staňte se expertem na 3D tisk díky UltiMaker e-learningu."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
msgctxt "@label:button" msgctxt "@label:button"
msgid "Ultimaker support" msgid "UltiMaker support"
msgstr "Ultimaker podpora" msgstr "UltiMaker podpora"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Learn how to get started with Ultimaker Cura." msgid "Learn how to get started with UltiMaker Cura."
msgstr "Zjistěte, jak začít s Ultimaker Cura." msgstr "Zjistěte, jak začít s UltiMaker Cura."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
msgctxt "@label:button" msgctxt "@label:button"
@ -5699,8 +5699,8 @@ msgstr "Položit otázku"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Consult the Ultimaker Community." msgid "Consult the UltiMaker Community."
msgstr "Poraďte se s Ultimaker komunitou." msgstr "Poraďte se s UltiMaker komunitou."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
msgctxt "@label:button" msgctxt "@label:button"
@ -5714,8 +5714,8 @@ msgstr "Dejte vývojářům vědět, že je něco špatně."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Visit the Ultimaker website." msgid "Visit the UltiMaker website."
msgstr "Navštivte web Ultimaker." msgstr "Navštivte web UltiMaker."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
msgctxt "@label" msgctxt "@label"
@ -6011,8 +6011,8 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58
msgctxt "@button" msgctxt "@button"
msgid "Create a free Ultimaker account" msgid "Create a free UltiMaker account"
msgstr "Vytvořit účet Ultimaker zdarma" msgstr "Vytvořit účet UltiMaker zdarma"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24
msgctxt "@action:button" msgctxt "@action:button"
@ -6026,8 +6026,8 @@ msgstr "Poslední aktualizace: %1"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107
msgctxt "@button" msgctxt "@button"
msgid "Ultimaker Account" msgid "UltiMaker Account"
msgstr "Ultimaker Account" msgstr "UltiMaker Account"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126
msgctxt "@button" msgctxt "@button"
@ -6241,13 +6241,13 @@ msgstr "Post Processing"
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "description" msgctxt "description"
msgid "Manages network connections to Ultimaker networked printers." msgid "Manages network connections to UltiMaker networked printers."
msgstr "Spravuje síťová připojení k síťovým tiskárnám Ultimaker." msgstr "Spravuje síťová připojení k síťovým tiskárnám UltiMaker."
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker Network Connection" msgid "UltiMaker Network Connection"
msgstr "Síťové připojení Ultimaker" msgstr "Síťové připojení UltiMaker"
#: /3MFWriter/plugin.json #: /3MFWriter/plugin.json
msgctxt "description" msgctxt "description"
@ -6281,8 +6281,8 @@ msgstr "Informace o slicování"
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for writing Ultimaker Format Packages." msgid "Provides support for writing UltiMaker Format Packages."
msgstr "Poskytuje podporu pro psaní balíčků formátu Ultimaker." msgstr "Poskytuje podporu pro psaní balíčků formátu UltiMaker."
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
msgctxt "name" msgctxt "name"
@ -6297,7 +6297,7 @@ msgstr "Připojuje k Digitální knihovně. Umožňuje Cuře otevírat a ukláda
#: /DigitalLibrary/plugin.json #: /DigitalLibrary/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker Digital Library" msgid "Ultimaker Digital Library"
msgstr "Digitální knihovna Ultimaker" msgstr "Digitální knihovna UltiMaker"
#: /GCodeProfileReader/plugin.json #: /GCodeProfileReader/plugin.json
msgctxt "description" msgctxt "description"
@ -6331,13 +6331,13 @@ msgstr "Čtečka trimesh"
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)."
msgstr "Poskytuje akce strojů pro stroje Ultimaker (jako je průvodce vyrovnáváním postele, výběr upgradů atd.)." msgstr "Poskytuje akce strojů pro stroje UltiMaker (jako je průvodce vyrovnáváním postele, výběr upgradů atd.)."
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker machine actions" msgid "UltiMaker machine actions"
msgstr "Akce zařízení Ultimaker" msgstr "Akce zařízení UltiMaker"
#: /GCodeGzReader/plugin.json #: /GCodeGzReader/plugin.json
msgctxt "description" msgctxt "description"
@ -6351,8 +6351,8 @@ msgstr "Čtečka kompresovaného G kódu"
#: /Marketplace/plugin.json #: /Marketplace/plugin.json
msgctxt "description" msgctxt "description"
msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website."
msgstr "Spravuje rozšíření aplikace a umožňuje prohlížení rozšíření z webu Ultimaker." msgstr "Spravuje rozšíření aplikace a umožňuje prohlížení rozšíření z webu UltiMaker."
#: /Marketplace/plugin.json #: /Marketplace/plugin.json
msgctxt "name" msgctxt "name"
@ -6701,8 +6701,8 @@ msgstr "Zapisovač G kódu"
#: /UFPReader/plugin.json #: /UFPReader/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for reading Ultimaker Format Packages." msgid "Provides support for reading UltiMaker Format Packages."
msgstr "Poskytuje podporu pro čtení balíčků formátu Ultimaker." msgstr "Poskytuje podporu pro čtení balíčků formátu UltiMaker."
#: /UFPReader/plugin.json #: /UFPReader/plugin.json
msgctxt "name" msgctxt "name"
@ -7018,8 +7018,8 @@ msgstr "Fáze přípravy"
#~ msgstr "Email" #~ msgstr "Email"
#~ msgctxt "@description" #~ msgctxt "@description"
#~ msgid "Please sign in to get verified plugins and materials for Ultimaker Cura Enterprise" #~ msgid "Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise"
#~ msgstr "Přihlaste se, abyste získali ověřené pluginy a materiály pro Ultimaker Cura Enterprise" #~ msgstr "Přihlaste se, abyste získali ověřené pluginy a materiály pro UltiMaker Cura Enterprise"
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "Version" #~ msgid "Version"
@ -7176,16 +7176,16 @@ msgstr "Fáze přípravy"
#~ msgstr "Poskytuje zobrazení simulace." #~ msgstr "Poskytuje zobrazení simulace."
#~ msgctxt "@info:status" #~ msgctxt "@info:status"
#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." #~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account."
#~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu Ultimaker." #~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu UltiMaker."
#~ msgctxt "@info:status Ultimaker Cloud should not be translated." #~ msgctxt "@info:status Ultimaker Cloud should not be translated."
#~ msgid "Connect to Ultimaker Digital Factory" #~ msgid "Connect to Ultimaker Digital Factory"
#~ msgstr "Připojit se k Ultimaker Digital Factory" #~ msgstr "Připojit se k Ultimaker Digital Factory"
#~ msgctxt "@info" #~ msgctxt "@info"
#~ msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." #~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura."
#~ msgstr "Vstup z webových kamer pro cloudové tiskárny nemůže být v Ultimaker Cura zobrazen." #~ msgstr "Vstup z webových kamer pro cloudové tiskárny nemůže být v UltiMaker Cura zobrazen."
#~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" #~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!"
#~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}." #~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}."
@ -7255,8 +7255,8 @@ msgstr "Fáze přípravy"
#~ msgstr "Dokončit" #~ msgstr "Dokončit"
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "Ultimaker Account" #~ msgid "UltiMaker Account"
#~ msgstr "Účet Ultimaker" #~ msgstr "Účet UltiMaker"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "Your key to connected 3D printing" #~ msgid "Your key to connected 3D printing"
@ -7271,8 +7271,8 @@ msgstr "Fáze přípravy"
#~ msgstr "- Zůstaňte flexibilní díky synchronizaci nastavení a přístupu k ní kdekoli" #~ msgstr "- Zůstaňte flexibilní díky synchronizaci nastavení a přístupu k ní kdekoli"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "- Increase efficiency with a remote workflow on Ultimaker printers" #~ msgid "- Increase efficiency with a remote workflow on UltiMaker printers"
#~ msgstr "- Zvyšte efektivitu pomocí vzdáleného pracovního postupu na tiskárnách Ultimaker" #~ msgstr "- Zvyšte efektivitu pomocí vzdáleného pracovního postupu na tiskárnách UltiMaker"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "" #~ msgid ""
@ -7283,8 +7283,8 @@ msgstr "Fáze přípravy"
#~ "Ultimaker Cura. Bude to trvat jen několik okamžiků." #~ "Ultimaker Cura. Bude to trvat jen několik okamžiků."
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "What's new in Ultimaker Cura" #~ msgid "What's new in UltiMaker Cura"
#~ msgstr "Co je nového v Ultimaker Cura" #~ msgstr "Co je nového v UltiMaker Cura"
#~ msgctxt "@label ({} is object name)" #~ msgctxt "@label ({} is object name)"
#~ msgid "Are you sure you wish to remove {}? This cannot be undone!" #~ msgid "Are you sure you wish to remove {}? This cannot be undone!"
@ -7316,11 +7316,11 @@ msgstr "Fáze přípravy"
#~ msgctxt "info:status" #~ msgctxt "info:status"
#~ msgid "<ul>{}</ul>To establish a connection, please visit the <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>." #~ msgid "<ul>{}</ul>To establish a connection, please visit the <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>."
#~ msgstr "<ul>{}</ul> Chcete-li navázat spojení, navštivte <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>." #~ msgstr "<ul>{}</ul> Chcete-li navázat spojení, navštivte <a href='https://mycloud.UltiMaker.com/'>Ultimaker Digital Factory</a>."
#~ msgctxt "@label ({} is printer name)" #~ msgctxt "@label ({} is printer name)"
#~ msgid "{} will be removed until the next account sync. <br> To remove {} permanently, visit <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>. <br><br>Are you sure you want to remove {} temporarily?" #~ msgid "{} will be removed until the next account sync. <br> To remove {} permanently, visit <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>. <br><br>Are you sure you want to remove {} temporarily?"
#~ msgstr "{} bude odebrána až do další synchronizace účtu. <br> Chcete-li {} trvale odebrat, navštivte <a href='https://mycloud.ultimaker.com/'>Ultimaker Digital Factory</a>. <br><br>Opravdu chcete dočasně odebrat {}?" #~ msgstr "{} bude odebrána až do další synchronizace účtu. <br> Chcete-li {} trvale odebrat, navštivte <a href='https://mycloud.UltiMaker.com/'>Ultimaker Digital Factory</a>. <br><br>Opravdu chcete dočasně odebrat {}?"
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "" #~ msgid ""
@ -7396,8 +7396,8 @@ msgstr "Fáze přípravy"
#~ msgstr "Připojeno přes Cloud" #~ msgstr "Připojeno přes Cloud"
#~ msgctxt "@info:status Ultimaker Cloud should not be translated." #~ msgctxt "@info:status Ultimaker Cloud should not be translated."
#~ msgid "Connect to Ultimaker Cloud" #~ msgid "Connect to UltiMaker Cloud"
#~ msgstr "Připojit k Ultimaker Cloudu" #~ msgstr "Připojit k UltiMaker Cloudu"
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "You need to login first before you can rate" #~ msgid "You need to login first before you can rate"
@ -7424,16 +7424,16 @@ msgstr "Fáze přípravy"
#~ msgstr "Autor" #~ msgstr "Autor"
#~ msgctxt "@description" #~ msgctxt "@description"
#~ msgid "Get plugins and materials verified by Ultimaker" #~ msgid "Get plugins and materials verified by UltiMaker"
#~ msgstr "Získejte pluginy a materiály ověřené společností Ultimaker" #~ msgstr "Získejte pluginy a materiály ověřené společností UltiMaker"
#~ msgctxt "@label The argument is a username." #~ msgctxt "@label The argument is a username."
#~ msgid "Hi %1" #~ msgid "Hi %1"
#~ msgstr "Zdravím, %1" #~ msgstr "Zdravím, %1"
#~ msgctxt "@button" #~ msgctxt "@button"
#~ msgid "Ultimaker account" #~ msgid "UltiMaker account"
#~ msgstr "Ultimaker účet" #~ msgstr "UltiMaker účet"
#~ msgctxt "@button" #~ msgctxt "@button"
#~ msgid "Sign out" #~ msgid "Sign out"
@ -7512,20 +7512,20 @@ msgstr "Fáze přípravy"
#~ msgstr "Jazyk:" #~ msgstr "Jazyk:"
#~ msgctxt "@label" #~ msgctxt "@label"
#~ msgid "Ultimaker Cloud" #~ msgid "UltiMaker Cloud"
#~ msgstr "Ultimaker Cloud" #~ msgstr "UltiMaker Cloud"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "The next generation 3D printing workflow" #~ msgid "The next generation 3D printing workflow"
#~ msgstr "Pracovní postup 3D tisku nové generace" #~ msgstr "Pracovní postup 3D tisku nové generace"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "- Send print jobs to Ultimaker printers outside your local network" #~ msgid "- Send print jobs to UltiMaker printers outside your local network"
#~ msgstr "- Odeslat tiskové úlohy do tiskáren Ultimaker mimo vaši místní síť" #~ msgstr "- Odeslat tiskové úlohy do tiskáren UltiMaker mimo vaši místní síť"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" #~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere"
#~ msgstr "- Uložte svá nastavení Ultimaker Cura do cloudu pro použití kdekoli" #~ msgstr "- Uložte svá nastavení UltiMaker Cura do cloudu pro použití kdekoli"
#~ msgctxt "@text" #~ msgctxt "@text"
#~ msgid "- Get exclusive access to print profiles from leading brands" #~ msgid "- Get exclusive access to print profiles from leading brands"

View file

@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE. # Cura
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) 2022 UltiMaker.
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the Cura package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # Ultimaker <plugins@ultimaker.com>, 2022.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@ -442,7 +442,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277
msgctxt "@info" msgctxt "@info"
msgid "Unable to reach the Ultimaker account server." msgid "Unable to reach the UltiMaker account server."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
@ -718,7 +718,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113
msgctxt "@label crash message" msgctxt "@label crash message"
msgid "" msgid ""
"<p><b>Oops, Ultimaker Cura has encountered something that doesn't seem right." "<p><b>Oops, UltiMaker Cura has encountered something that doesn't seem right."
"</p></b>\n" "</p></b>\n"
" <p>We encountered an unrecoverable error during start " " <p>We encountered an unrecoverable error during start "
"up. It was possibly caused by some incorrect configuration files. We suggest " "up. It was possibly caused by some incorrect configuration files. We suggest "
@ -732,7 +732,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122
msgctxt "@action:button" msgctxt "@action:button"
msgid "Send crash report to Ultimaker" msgid "Send crash report to UltiMaker"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125
@ -932,8 +932,8 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13
msgctxt "info:status" msgctxt "info:status"
msgid "New printer detected from your Ultimaker account" msgid "New printer detected from your UltiMaker account"
msgid_plural "New printers detected from your Ultimaker account" msgid_plural "New printers detected from your UltiMaker account"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
@ -1087,7 +1087,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
msgctxt "@info:status" msgctxt "@info:status"
msgid "" msgid ""
"You are attempting to connect to a printer that is not running Ultimaker " "You are attempting to connect to a printer that is not running UltiMaker "
"Connect. Please update the printer to the latest firmware." "Connect. Please update the printer to the latest firmware."
msgstr "" msgstr ""
@ -1317,7 +1317,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22
msgctxt "@item:inlistbox" msgctxt "@item:inlistbox"
msgid "Ultimaker Format Package" msgid "UltiMaker Format Package"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19
@ -1441,7 +1441,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95
msgctxt "@info:title" msgctxt "@info:title"
msgid "Changes detected from your Ultimaker account" msgid "Changes detected from your UltiMaker account"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147
@ -1604,7 +1604,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169
msgctxt "@message:description" msgctxt "@message:description"
msgid "Report a bug on Ultimaker Cura's issue tracker." msgid "Report a bug on UltiMaker Cura's issue tracker."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401
@ -1750,7 +1750,7 @@ msgstr ""
msgctxt "@info:error Don't translate the XML tag <filename>!" msgctxt "@info:error Don't translate the XML tag <filename>!"
msgid "" msgid ""
"Project file <filename>{0}</filename> is made using profiles that are " "Project file <filename>{0}</filename> is made using profiles that are "
"unknown to this version of Ultimaker Cura." "unknown to this version of UltiMaker Cura."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14
@ -2418,7 +2418,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287
msgctxt "@info" msgctxt "@info"
msgid "" msgid ""
"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click "
"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
msgstr "" msgstr ""
@ -2799,7 +2799,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73
msgctxt "@text:window" msgctxt "@text:window"
msgid "" msgid ""
"Ultimaker Cura collects anonymous data in order to improve the print quality " "UltiMaker Cura collects anonymous data in order to improve the print quality "
"and user experience. Below is an example of all the data that is shared:" "and user experience. Below is an example of all the data that is shared:"
msgstr "" msgstr ""
@ -2825,7 +2825,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
msgctxt "@label" msgctxt "@label"
msgid "Please select any upgrades made to this Ultimaker Original" msgid "Please select any upgrades made to this UltiMaker Original"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39
@ -2928,7 +2928,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Streamline your workflow and customize your Ultimaker Cura experience with " "Streamline your workflow and customize your UltiMaker Cura experience with "
"plugins contributed by our amazing community of users." "plugins contributed by our amazing community of users."
msgstr "" msgstr ""
@ -2991,7 +2991,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Select and install material profiles optimised for your Ultimaker 3D " "Select and install material profiles optimised for your UltiMaker 3D "
"printers." "printers."
msgstr "" msgstr ""
@ -3114,17 +3114,17 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Plug-in" msgid "UltiMaker Verified Plug-in"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Certified Material" msgid "UltiMaker Certified Material"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Package" msgid "UltiMaker Verified Package"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11
@ -3135,7 +3135,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "Manage your UltiMaker Cura plugins and material profiles here. Make sure to "
"keep your plugins up to date and backup your setup regularly." "keep your plugins up to date and backup your setup regularly."
msgstr "" msgstr ""
@ -4455,7 +4455,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
msgctxt "@info:tooltip" msgctxt "@info:tooltip"
msgid "" msgid ""
"Should anonymous data about your print be sent to Ultimaker? Note, no " "Should anonymous data about your print be sent to UltiMaker? Note, no "
"models, IP addresses or other personally identifiable information is sent or " "models, IP addresses or other personally identifiable information is sent or "
"stored." "stored."
msgstr "" msgstr ""
@ -4775,7 +4775,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19
msgctxt "@label" msgctxt "@label"
msgid "Sign in to the Ultimaker platform" msgid "Sign in to the UltiMaker platform"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123
@ -4790,7 +4790,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175
msgctxt "@text" msgctxt "@text"
msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189
@ -4800,18 +4800,18 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201
msgctxt "@text" msgctxt "@text"
msgid "Create a free Ultimaker Account" msgid "Create a free UltiMaker Account"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
msgctxt "@label" msgctxt "@label"
msgid "Help us to improve Ultimaker Cura" msgid "Help us to improve UltiMaker Cura"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Ultimaker Cura collects anonymous data to improve print quality and user " "UltiMaker Cura collects anonymous data to improve print quality and user "
"experience, including:" "experience, including:"
msgstr "" msgstr ""
@ -4838,7 +4838,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Data collected by Ultimaker Cura will not contain any personal information." "Data collected by UltiMaker Cura will not contain any personal information."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100
@ -4909,7 +4909,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201
msgctxt "@label" msgctxt "@label"
msgid "Can't connect to your Ultimaker printer?" msgid "Can't connect to your UltiMaker printer?"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200
@ -4931,13 +4931,13 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56
msgctxt "@label" msgctxt "@label"
msgid "Welcome to Ultimaker Cura" msgid "Welcome to UltiMaker Cura"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Please follow these steps to set up Ultimaker Cura. This will only take a " "Please follow these steps to set up UltiMaker Cura. This will only take a "
"few moments." "few moments."
msgstr "" msgstr ""
@ -5033,7 +5033,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216
msgctxt "" msgctxt ""
"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " "@action:inmenu Marketplace is a brand name of UltiMaker's, so don't "
"translate." "translate."
msgid "Add more materials from Marketplace" msgid "Add more materials from Marketplace"
msgstr "" msgstr ""
@ -5635,7 +5635,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87
msgctxt "@info:credit" msgctxt "@info:credit"
msgid "" msgid ""
"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura is developed by UltiMaker in cooperation with the community.\n"
"Cura proudly uses the following open source projects:" "Cura proudly uses the following open source projects:"
msgstr "" msgstr ""
@ -5842,22 +5842,22 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Extend Ultimaker Cura with plugins and material profiles." msgid "Extend UltiMaker Cura with plugins and material profiles."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Become a 3D printing expert with Ultimaker e-learning." msgid "Become a 3D printing expert with UltiMaker e-learning."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
msgctxt "@label:button" msgctxt "@label:button"
msgid "Ultimaker support" msgid "UltiMaker support"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Learn how to get started with Ultimaker Cura." msgid "Learn how to get started with UltiMaker Cura."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
@ -5867,7 +5867,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Consult the Ultimaker Community." msgid "Consult the UltiMaker Community."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
@ -5882,7 +5882,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Visit the Ultimaker website." msgid "Visit the UltiMaker website."
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
@ -6191,12 +6191,12 @@ msgctxt "@text"
msgid "" msgid ""
"- Add material profiles and plug-ins from the Marketplace\n" "- Add material profiles and plug-ins from the Marketplace\n"
"- Back-up and sync your material profiles and plug-ins\n" "- Back-up and sync your material profiles and plug-ins\n"
"- Share ideas and get help from 48,000+ users in the Ultimaker community" "- Share ideas and get help from 48,000+ users in the UltiMaker community"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58
msgctxt "@button" msgctxt "@button"
msgid "Create a free Ultimaker account" msgid "Create a free UltiMaker account"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24
@ -6211,7 +6211,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107
msgctxt "@button" msgctxt "@button"
msgid "Ultimaker Account" msgid "UltiMaker Account"
msgstr "" msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126
@ -6254,7 +6254,7 @@ msgstr ""
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51
msgctxt "@status" msgctxt "@status"
msgid "" msgid ""
"This printer is not linked to your account. Please visit the Ultimaker " "This printer is not linked to your account. Please visit the UltiMaker "
"Digital Factory to establish a connection." "Digital Factory to establish a connection."
msgstr "" msgstr ""
@ -6436,12 +6436,12 @@ msgstr ""
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "description" msgctxt "description"
msgid "Manages network connections to Ultimaker networked printers." msgid "Manages network connections to UltiMaker networked printers."
msgstr "" msgstr ""
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker Network Connection" msgid "UltiMaker Network Connection"
msgstr "" msgstr ""
#: /3MFWriter/plugin.json #: /3MFWriter/plugin.json
@ -6476,7 +6476,7 @@ msgstr ""
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for writing Ultimaker Format Packages." msgid "Provides support for writing UltiMaker Format Packages."
msgstr "" msgstr ""
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
@ -6529,13 +6529,13 @@ msgstr ""
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "description" msgctxt "description"
msgid "" msgid ""
"Provides machine actions for Ultimaker machines (such as bed leveling " "Provides machine actions for UltiMaker machines (such as bed leveling "
"wizard, selecting upgrades, etc.)." "wizard, selecting upgrades, etc.)."
msgstr "" msgstr ""
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker machine actions" msgid "UltiMaker machine actions"
msgstr "" msgstr ""
#: /GCodeGzReader/plugin.json #: /GCodeGzReader/plugin.json
@ -6552,7 +6552,7 @@ msgstr ""
msgctxt "description" msgctxt "description"
msgid "" msgid ""
"Manages extensions to the application and allows browsing extensions from " "Manages extensions to the application and allows browsing extensions from "
"the Ultimaker website." "the UltiMaker website."
msgstr "" msgstr ""
#: /Marketplace/plugin.json #: /Marketplace/plugin.json
@ -6905,7 +6905,7 @@ msgstr ""
#: /UFPReader/plugin.json #: /UFPReader/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for reading Ultimaker Format Packages." msgid "Provides support for reading UltiMaker Format Packages."
msgstr "" msgstr ""
#: /UFPReader/plugin.json #: /UFPReader/plugin.json

View file

@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE. # Cura
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) 2022 UltiMaker.
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the Cura package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # Ultimaker <plugins@ultimaker.com>, 2022.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@ -443,8 +443,8 @@ msgstr "Es kann kein neuer Anmeldevorgang gestartet werden. Bitte überprüfen S
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277
msgctxt "@info" msgctxt "@info"
msgid "Unable to reach the Ultimaker account server." msgid "Unable to reach the UltiMaker account server."
msgstr "Der Ultimaker-Konto-Server konnte nicht erreicht werden." msgstr "Der UltiMaker-Konto-Server konnte nicht erreicht werden."
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
msgctxt "@info:title" msgctxt "@info:title"
@ -721,7 +721,7 @@ msgstr "Cura kann nicht starten"
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113
msgctxt "@label crash message" msgctxt "@label crash message"
msgid "" msgid ""
"<p><b>Oops, Ultimaker Cura has encountered something that doesn't seem right." "<p><b>Oops, UltiMaker Cura has encountered something that doesn't seem right."
"</p></b>\n" "</p></b>\n"
" <p>We encountered an unrecoverable error during start " " <p>We encountered an unrecoverable error during start "
"up. It was possibly caused by some incorrect configuration files. We suggest " "up. It was possibly caused by some incorrect configuration files. We suggest "
@ -731,15 +731,15 @@ msgid ""
" <p>Please send us this Crash Report to fix the problem.</" " <p>Please send us this Crash Report to fix the problem.</"
"p>\n" "p>\n"
" " " "
msgstr "<p><b>Hoppla, bei Ultimaker Cura ist ein Problem aufgetreten.</p></b>\n <p>Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er" msgstr "<p><b>Hoppla, bei UltiMaker Cura ist ein Problem aufgetreten.</p></b>\n <p>Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er"
" wurde möglicherweise durch einige falsche Konfigurationsdateien verursacht. Wir empfehlen ein Backup und Reset Ihrer Konfiguration.</p>\n " " wurde möglicherweise durch einige falsche Konfigurationsdateien verursacht. Wir empfehlen ein Backup und Reset Ihrer Konfiguration.</p>\n "
" <p>Backups sind im Konfigurationsordner abgelegt.</p>\n <p>Senden Sie uns diesen Absturzbericht bitte, um das Problem zu beheben.</p>\n" " <p>Backups sind im Konfigurationsordner abgelegt.</p>\n <p>Senden Sie uns diesen Absturzbericht bitte, um das Problem zu beheben.</p>\n"
" " " "
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122
msgctxt "@action:button" msgctxt "@action:button"
msgid "Send crash report to Ultimaker" msgid "Send crash report to UltiMaker"
msgstr "Absturzbericht an Ultimaker senden" msgstr "Absturzbericht an UltiMaker senden"
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125
msgctxt "@action:button" msgctxt "@action:button"
@ -939,10 +939,10 @@ msgstr "Netzwerkfehler"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13
msgctxt "info:status" msgctxt "info:status"
msgid "New printer detected from your Ultimaker account" msgid "New printer detected from your UltiMaker account"
msgid_plural "New printers detected from your Ultimaker account" msgid_plural "New printers detected from your UltiMaker account"
msgstr[0] "Ihr Ultimaker-Konto hat einen neuen Drucker erkannt" msgstr[0] "Ihr UltiMaker-Konto hat einen neuen Drucker erkannt"
msgstr[1] "Ihr Ultimaker-Konto hat neue Drucker erkannt" msgstr[1] "Ihr UltiMaker-Konto hat neue Drucker erkannt"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29
#, python-brace-format #, python-brace-format
@ -1096,9 +1096,9 @@ msgstr "Drucker entfernen"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
msgctxt "@info:status" msgctxt "@info:status"
msgid "" msgid ""
"You are attempting to connect to a printer that is not running Ultimaker " "You are attempting to connect to a printer that is not running UltiMaker "
"Connect. Please update the printer to the latest firmware." "Connect. Please update the printer to the latest firmware."
msgstr "Sie versuchen, sich mit einem Drucker zu verbinden, auf dem Ultimaker Connect nicht läuft. Bitte aktualisieren Sie die Firmware des Druckers." msgstr "Sie versuchen, sich mit einem Drucker zu verbinden, auf dem UltiMaker Connect nicht läuft. Bitte aktualisieren Sie die Firmware des Druckers."
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21
msgctxt "@info:title" msgctxt "@info:title"
@ -1326,8 +1326,8 @@ msgstr "Kann nicht in UFP-Datei schreiben:"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22
msgctxt "@item:inlistbox" msgctxt "@item:inlistbox"
msgid "Ultimaker Format Package" msgid "UltiMaker Format Package"
msgstr "Ultimaker Format Package" msgstr "UltiMaker Format Package"
#: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19
msgctxt "@text Placeholder for the username if it has been deleted" msgctxt "@text Placeholder for the username if it has been deleted"
@ -1451,8 +1451,8 @@ msgstr "Möchten Sie Material- und Softwarepakete mit Ihrem Konto synchronisiere
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95
msgctxt "@info:title" msgctxt "@info:title"
msgid "Changes detected from your Ultimaker account" msgid "Changes detected from your UltiMaker account"
msgstr "Von Ihrem Ultimaker-Konto erkannte Änderungen" msgstr "Von Ihrem UltiMaker-Konto erkannte Änderungen"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147
msgctxt "@action:button" msgctxt "@action:button"
@ -1614,8 +1614,8 @@ msgstr "Einen Fehler melden"
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169
msgctxt "@message:description" msgctxt "@message:description"
msgid "Report a bug on Ultimaker Cura's issue tracker." msgid "Report a bug on UltiMaker Cura's issue tracker."
msgstr "Einen Fehler im Issue Tracker von Ultimaker Cura melden." msgstr "Einen Fehler im Issue Tracker von UltiMaker Cura melden."
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401
msgctxt "@info:status" msgctxt "@info:status"
@ -1763,8 +1763,8 @@ msgstr "Projektdatei <filename>{0}</filename> ist beschädigt: <message>{1}</mes
msgctxt "@info:error Don't translate the XML tag <filename>!" msgctxt "@info:error Don't translate the XML tag <filename>!"
msgid "" msgid ""
"Project file <filename>{0}</filename> is made using profiles that are " "Project file <filename>{0}</filename> is made using profiles that are "
"unknown to this version of Ultimaker Cura." "unknown to this version of UltiMaker Cura."
msgstr "Projektdatei <filename>{0}</filename> verwendet Profile, die nicht mit dieser Ultimaker Cura-Version kompatibel sind." msgstr "Projektdatei <filename>{0}</filename> verwendet Profile, die nicht mit dieser UltiMaker Cura-Version kompatibel sind."
#: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14
msgctxt "@label" msgctxt "@label"
@ -2436,9 +2436,9 @@ msgstr "Damit Sie die Warteschlange aus der Ferne verwalten können, müssen Sie
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287
msgctxt "@info" msgctxt "@info"
msgid "" msgid ""
"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click "
"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
msgstr "Webcam-Feeds für Cloud-Drucker können nicht in Ultimaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu" msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu"
" besuchen und diese Webcam zu sehen." " besuchen und diese Webcam zu sehen."
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347
@ -2819,9 +2819,9 @@ msgstr "Weitere Informationen zur anonymen Datenerfassung"
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73
msgctxt "@text:window" msgctxt "@text:window"
msgid "" msgid ""
"Ultimaker Cura collects anonymous data in order to improve the print quality " "UltiMaker Cura collects anonymous data in order to improve the print quality "
"and user experience. Below is an example of all the data that is shared:" "and user experience. Below is an example of all the data that is shared:"
msgstr "Ultimaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Nachfolgend ist ein Beispiel aller Daten, die geteilt werden:" msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Nachfolgend ist ein Beispiel aller Daten, die geteilt werden:"
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107
msgctxt "@text:window" msgctxt "@text:window"
@ -2845,8 +2845,8 @@ msgstr "Cura-Projekt speichern"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
msgctxt "@label" msgctxt "@label"
msgid "Please select any upgrades made to this Ultimaker Original" msgid "Please select any upgrades made to this UltiMaker Original"
msgstr "Wählen Sie bitte alle Upgrades für dieses Ultimaker-Original" msgstr "Wählen Sie bitte alle Upgrades für dieses UltiMaker-Original"
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39
msgctxt "@label" msgctxt "@label"
@ -2950,9 +2950,9 @@ msgstr "Plug-ins installieren"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Streamline your workflow and customize your Ultimaker Cura experience with " "Streamline your workflow and customize your UltiMaker Cura experience with "
"plugins contributed by our amazing community of users." "plugins contributed by our amazing community of users."
msgstr "Optimieren Sie Ihren Workflow und individualisieren Sie Ihr Erlebnis in Ultimaker Cura mit Plug-ins, die von der großartigen Community unserer Anwender" msgstr "Optimieren Sie Ihren Workflow und individualisieren Sie Ihr Erlebnis in UltiMaker Cura mit Plug-ins, die von der großartigen Community unserer Anwender"
" bereitgestellt werden." " bereitgestellt werden."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15
@ -3014,9 +3014,9 @@ msgstr "Materialien installieren"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Select and install material profiles optimised for your Ultimaker 3D " "Select and install material profiles optimised for your UltiMaker 3D "
"printers." "printers."
msgstr "Wählen und installieren Sie Materialprofile, die für Ihre Ultimaker 3D-Drucker optimiert sind." msgstr "Wählen und installieren Sie Materialprofile, die für Ihre UltiMaker 3D-Drucker optimiert sind."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32
msgctxt "@info:tooltip" msgctxt "@info:tooltip"
@ -3137,18 +3137,18 @@ msgstr "Weitere laden"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Plug-in" msgid "UltiMaker Verified Plug-in"
msgstr "Durch Ultimaker verifiziertes Plug-in" msgstr "Durch UltiMaker verifiziertes Plug-in"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Certified Material" msgid "UltiMaker Certified Material"
msgstr "Durch Ultimaker zertifiziertes Material" msgstr "Durch UltiMaker zertifiziertes Material"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
msgctxt "@info" msgctxt "@info"
msgid "Ultimaker Verified Package" msgid "UltiMaker Verified Package"
msgstr "Durch Ultimaker verifiziertes Paket" msgstr "Durch UltiMaker verifiziertes Paket"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11
msgctxt "@header" msgctxt "@header"
@ -3158,9 +3158,9 @@ msgstr "Pakete verwalten"
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "Manage your UltiMaker Cura plugins and material profiles here. Make sure to "
"keep your plugins up to date and backup your setup regularly." "keep your plugins up to date and backup your setup regularly."
msgstr "Verwalten Sie hier Ihre Ultimaker Cura Plug-ins und Ihre Materialprofile. Halten Sie Ihre Plug-ins auf dem neuesten Stand und sichern Sie Ihr Setup regelmäßig." msgstr "Verwalten Sie hier Ihre UltiMaker Cura Plug-ins und Ihre Materialprofile. Halten Sie Ihre Plug-ins auf dem neuesten Stand und sichern Sie Ihr Setup regelmäßig."
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15
msgctxt "@title" msgctxt "@title"
@ -4484,10 +4484,10 @@ msgstr "Privatsphäre"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
msgctxt "@info:tooltip" msgctxt "@info:tooltip"
msgid "" msgid ""
"Should anonymous data about your print be sent to Ultimaker? Note, no " "Should anonymous data about your print be sent to UltiMaker? Note, no "
"models, IP addresses or other personally identifiable information is sent or " "models, IP addresses or other personally identifiable information is sent or "
"stored." "stored."
msgstr "Sollen anonyme Daten über Ihren Druck an Ultimaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet" msgstr "Sollen anonyme Daten über Ihren Druck an UltiMaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet"
" oder gespeichert werden." " oder gespeichert werden."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867
@ -4806,8 +4806,8 @@ msgstr "Störungen beheben"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19
msgctxt "@label" msgctxt "@label"
msgid "Sign in to the Ultimaker platform" msgid "Sign in to the UltiMaker platform"
msgstr "Bei der Ultimaker-Plattform anmelden" msgstr "Bei der UltiMaker-Plattform anmelden"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123
msgctxt "@text" msgctxt "@text"
@ -4821,8 +4821,8 @@ msgstr "Materialeinstellungen und Plug-ins sichern und synchronisieren"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175
msgctxt "@text" msgctxt "@text"
msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community"
msgstr "Ideenaustausch mit und Hilfe von mehr als 48.000 Benutzern in der Ultimaker Community" msgstr "Ideenaustausch mit und Hilfe von mehr als 48.000 Benutzern in der UltiMaker Community"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189
msgctxt "@button" msgctxt "@button"
@ -4831,20 +4831,20 @@ msgstr "Überspringen"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201
msgctxt "@text" msgctxt "@text"
msgid "Create a free Ultimaker Account" msgid "Create a free UltiMaker Account"
msgstr "Kostenloses Ultimaker-Konto erstellen" msgstr "Kostenloses UltiMaker-Konto erstellen"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
msgctxt "@label" msgctxt "@label"
msgid "Help us to improve Ultimaker Cura" msgid "Help us to improve UltiMaker Cura"
msgstr "Helfen Sie uns, Ultimaker Cura zu verbessern" msgstr "Helfen Sie uns, UltiMaker Cura zu verbessern"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Ultimaker Cura collects anonymous data to improve print quality and user " "UltiMaker Cura collects anonymous data to improve print quality and user "
"experience, including:" "experience, including:"
msgstr "Ultimaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Dazu gehören:" msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Dazu gehören:"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68
msgctxt "@text" msgctxt "@text"
@ -4869,8 +4869,8 @@ msgstr "Druckeinstellungen"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Data collected by Ultimaker Cura will not contain any personal information." "Data collected by UltiMaker Cura will not contain any personal information."
msgstr "Die von Ultimaker Cura erfassten Daten enthalten keine personenbezogenen Daten." msgstr "Die von UltiMaker Cura erfassten Daten enthalten keine personenbezogenen Daten."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100
msgctxt "@text" msgctxt "@text"
@ -4940,8 +4940,8 @@ msgstr "Verbindung mit Drucker nicht möglich."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201
msgctxt "@label" msgctxt "@label"
msgid "Can't connect to your Ultimaker printer?" msgid "Can't connect to your UltiMaker printer?"
msgstr "Sie können keine Verbindung zu Ihrem Ultimaker-Drucker herstellen?" msgstr "Sie können keine Verbindung zu Ihrem UltiMaker-Drucker herstellen?"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200
msgctxt "@label" msgctxt "@label"
@ -4962,15 +4962,15 @@ msgstr "Verbinden"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56
msgctxt "@label" msgctxt "@label"
msgid "Welcome to Ultimaker Cura" msgid "Welcome to UltiMaker Cura"
msgstr "Willkommen bei Ultimaker Cura" msgstr "Willkommen bei UltiMaker Cura"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
msgctxt "@text" msgctxt "@text"
msgid "" msgid ""
"Please follow these steps to set up Ultimaker Cura. This will only take a " "Please follow these steps to set up UltiMaker Cura. This will only take a "
"few moments." "few moments."
msgstr "Befolgen Sie bitte diese Schritte für das Einrichten von\nUltimaker Cura. Dies dauert nur wenige Sekunden." msgstr "Befolgen Sie bitte diese Schritte für das Einrichten von\nUltiMaker Cura. Dies dauert nur wenige Sekunden."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82
msgctxt "@button" msgctxt "@button"
@ -5064,7 +5064,7 @@ msgstr "Materialien werden verwaltet..."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216
msgctxt "" msgctxt ""
"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " "@action:inmenu Marketplace is a brand name of UltiMaker's, so don't "
"translate." "translate."
msgid "Add more materials from Marketplace" msgid "Add more materials from Marketplace"
msgstr "Weiteres Material aus Marketplace hinzufügen" msgstr "Weiteres Material aus Marketplace hinzufügen"
@ -5668,9 +5668,9 @@ msgstr "Komplettlösung für den 3D-Druck mit geschmolzenem Filament."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87
msgctxt "@info:credit" msgctxt "@info:credit"
msgid "" msgid ""
"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura is developed by UltiMaker B.V. in cooperation with the community.\n"
"Cura proudly uses the following open source projects:" "Cura proudly uses the following open source projects:"
msgstr "Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" msgstr "Cura wurde von UltiMaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138
msgctxt "@label Description for application component" msgctxt "@label Description for application component"
@ -5875,23 +5875,23 @@ msgstr "Überwachen Sie Druckaufträge und drucken Sie sie aus Ihrem Druckprotok
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Extend Ultimaker Cura with plugins and material profiles." msgid "Extend UltiMaker Cura with plugins and material profiles."
msgstr "Erweitern Sie Ultimaker Cura durch Plugins und Materialprofile." msgstr "Erweitern Sie UltiMaker Cura durch Plugins und Materialprofile."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Become a 3D printing expert with Ultimaker e-learning." msgid "Become a 3D printing expert with UltiMaker e-learning."
msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von Ultimaker." msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von UltiMaker."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
msgctxt "@label:button" msgctxt "@label:button"
msgid "Ultimaker support" msgid "UltiMaker support"
msgstr "Ultimaker Kundendienst" msgstr "UltiMaker Kundendienst"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Learn how to get started with Ultimaker Cura." msgid "Learn how to get started with UltiMaker Cura."
msgstr "Erfahren Sie, wie Sie mit Ultimaker Cura Ihre Arbeit beginnen können." msgstr "Erfahren Sie, wie Sie mit UltiMaker Cura Ihre Arbeit beginnen können."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
msgctxt "@label:button" msgctxt "@label:button"
@ -5900,8 +5900,8 @@ msgstr "Eine Frage stellen"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Consult the Ultimaker Community." msgid "Consult the UltiMaker Community."
msgstr "Wenden Sie sich an die Ultimaker Community." msgstr "Wenden Sie sich an die UltiMaker Community."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
msgctxt "@label:button" msgctxt "@label:button"
@ -5915,8 +5915,8 @@ msgstr "Lassen Sie es die Entwickler wissen, falls etwas schief läuft."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
msgctxt "@tooltip:button" msgctxt "@tooltip:button"
msgid "Visit the Ultimaker website." msgid "Visit the UltiMaker website."
msgstr "Besuchen Sie die Ultimaker-Website." msgstr "Besuchen Sie die UltiMaker-Website."
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
msgctxt "@label" msgctxt "@label"
@ -6229,14 +6229,14 @@ msgctxt "@text"
msgid "" msgid ""
"- Add material profiles and plug-ins from the Marketplace\n" "- Add material profiles and plug-ins from the Marketplace\n"
"- Back-up and sync your material profiles and plug-ins\n" "- Back-up and sync your material profiles and plug-ins\n"
"- Share ideas and get help from 48,000+ users in the Ultimaker community" "- Share ideas and get help from 48,000+ users in the UltiMaker community"
msgstr "- Materialprofile und Plug-ins aus dem Marketplace hinzufügen\n- Materialprofile und Plug-ins sichern und synchronisieren\n- Ideenaustausch mit und Hilfe" msgstr "- Materialprofile und Plug-ins aus dem Marketplace hinzufügen\n- Materialprofile und Plug-ins sichern und synchronisieren\n- Ideenaustausch mit und Hilfe"
" von mehr als 48.000 Benutzern in der Ultimaker Community" " von mehr als 48.000 Benutzern in der UltiMaker Community"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58
msgctxt "@button" msgctxt "@button"
msgid "Create a free Ultimaker account" msgid "Create a free UltiMaker account"
msgstr "Kostenloses Ultimaker-Konto erstellen" msgstr "Kostenloses UltiMaker-Konto erstellen"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24
msgctxt "@action:button" msgctxt "@action:button"
@ -6250,8 +6250,8 @@ msgstr "Letztes Update: %1"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107
msgctxt "@button" msgctxt "@button"
msgid "Ultimaker Account" msgid "UltiMaker Account"
msgstr "UltimakerKonto" msgstr "UltiMakerKonto"
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126
msgctxt "@button" msgctxt "@button"
@ -6293,7 +6293,7 @@ msgstr "Der Cloud-Drucker ist offline. Bitte prüfen Sie, ob der Drucker eingesc
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51
msgctxt "@status" msgctxt "@status"
msgid "" msgid ""
"This printer is not linked to your account. Please visit the Ultimaker " "This printer is not linked to your account. Please visit the UltiMaker "
"Digital Factory to establish a connection." "Digital Factory to establish a connection."
msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die Ultimaker Digital Factory, um eine Verbindung herzustellen." msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die Ultimaker Digital Factory, um eine Verbindung herzustellen."
@ -6475,13 +6475,13 @@ msgstr "Nachbearbeitung"
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "description" msgctxt "description"
msgid "Manages network connections to Ultimaker networked printers." msgid "Manages network connections to UltiMaker networked printers."
msgstr "Verwaltet Netzwerkverbindungen zu Ultimaker-Netzwerkdruckern." msgstr "Verwaltet Netzwerkverbindungen zu UltiMaker-Netzwerkdruckern."
#: /UM3NetworkPrinting/plugin.json #: /UM3NetworkPrinting/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker Network Connection" msgid "UltiMaker Network Connection"
msgstr "Ultimaker-Netzwerkverbindung" msgstr "UltiMaker-Netzwerkverbindung"
#: /3MFWriter/plugin.json #: /3MFWriter/plugin.json
msgctxt "description" msgctxt "description"
@ -6515,8 +6515,8 @@ msgstr "Slice-Informationen"
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for writing Ultimaker Format Packages." msgid "Provides support for writing UltiMaker Format Packages."
msgstr "Bietet Unterstützung für das Schreiben von Ultimaker Format Packages." msgstr "Bietet Unterstützung für das Schreiben von UltiMaker Format Packages."
#: /UFPWriter/plugin.json #: /UFPWriter/plugin.json
msgctxt "name" msgctxt "name"
@ -6533,7 +6533,7 @@ msgstr "Stellt eine Verbindung zur Digitalen Bibliothek her und ermöglicht es C
#: /DigitalLibrary/plugin.json #: /DigitalLibrary/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker Digital Library" msgid "Ultimaker Digital Library"
msgstr "Digitale Bibliothek von Ultimaker" msgstr "Digitale Bibliothek von UltiMaker"
#: /GCodeProfileReader/plugin.json #: /GCodeProfileReader/plugin.json
msgctxt "description" msgctxt "description"
@ -6568,14 +6568,14 @@ msgstr "Trimesh Reader"
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "description" msgctxt "description"
msgid "" msgid ""
"Provides machine actions for Ultimaker machines (such as bed leveling " "Provides machine actions for UltiMaker machines (such as bed leveling "
"wizard, selecting upgrades, etc.)." "wizard, selecting upgrades, etc.)."
msgstr "Ermöglicht Maschinenabläufe für Ultimaker-Maschinen (z. B. Assistent für Bettnivellierung, Auswahl von Upgrades usw.)" msgstr "Ermöglicht Maschinenabläufe für UltiMaker-Maschinen (z. B. Assistent für Bettnivellierung, Auswahl von Upgrades usw.)"
#: /UltimakerMachineActions/plugin.json #: /UltimakerMachineActions/plugin.json
msgctxt "name" msgctxt "name"
msgid "Ultimaker machine actions" msgid "UltiMaker machine actions"
msgstr "Ultimaker-Maschinenabläufe" msgstr "UltiMaker-Maschinenabläufe"
#: /GCodeGzReader/plugin.json #: /GCodeGzReader/plugin.json
msgctxt "description" msgctxt "description"
@ -6591,8 +6591,8 @@ msgstr "Reader für komprimierten G-Code"
msgctxt "description" msgctxt "description"
msgid "" msgid ""
"Manages extensions to the application and allows browsing extensions from " "Manages extensions to the application and allows browsing extensions from "
"the Ultimaker website." "the UltiMaker website."
msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der Ultimaker-Website." msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der UltiMaker-Website."
#: /Marketplace/plugin.json #: /Marketplace/plugin.json
msgctxt "name" msgctxt "name"
@ -6944,8 +6944,8 @@ msgstr "G-Code-Writer"
#: /UFPReader/plugin.json #: /UFPReader/plugin.json
msgctxt "description" msgctxt "description"
msgid "Provides support for reading Ultimaker Format Packages." msgid "Provides support for reading UltiMaker Format Packages."
msgstr "Bietet Unterstützung für das Lesen von Ultimaker Format Packages." msgstr "Bietet Unterstützung für das Lesen von UltiMaker Format Packages."
#: /UFPReader/plugin.json #: /UFPReader/plugin.json
msgctxt "name" msgctxt "name"

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