mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 23:53:56 -06:00
Merge branch 'main' into CURA-9793_extend_recommended_print_settings
This commit is contained in:
commit
0738f996d0
409 changed files with 44013 additions and 3888 deletions
14
.github/workflows/cura-installer.yml
vendored
14
.github/workflows/cura-installer.yml
vendored
|
@ -212,38 +212,38 @@ jobs:
|
|||
cp openssl/lib/*.lib ./cura_inst/Lib/
|
||||
|
||||
- name: Create the Cura dist
|
||||
run: pyinstaller ./cura_inst/Ultimaker-Cura.spec
|
||||
run: pyinstaller ./cura_inst/UltiMaker-Cura.spec
|
||||
|
||||
- name: Archive the artifacts (bash)
|
||||
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
|
||||
|
||||
- name: Archive the artifacts (Powershell)
|
||||
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
|
||||
|
||||
- name: Create the Windows exe installer (Powershell)
|
||||
if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }}
|
||||
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
|
||||
|
||||
- name: Create the Linux AppImage (Bash)
|
||||
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
|
||||
|
||||
- name: Create the MacOS dmg (Bash)
|
||||
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
|
||||
|
||||
- name: Upload the artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }}
|
||||
name: UltiMaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }}
|
||||
path: |
|
||||
dist/*.tar.gz
|
||||
dist/*.zip
|
||||
|
|
46
.github/workflows/printer-linter-format.yml
vendored
Normal file
46
.github/workflows/printer-linter-format.yml
vendored
Normal 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"
|
59
.github/workflows/printer-linter-pr-diagnose.yml
vendored
Normal file
59
.github/workflows/printer-linter-pr-diagnose.yml
vendored
Normal 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
|
81
.github/workflows/printer-linter-pr-post.yml
vendored
Normal file
81
.github/workflows/printer-linter-pr-post.yml
vendored
Normal 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
|
15
.github/workflows/process-pull-request.yml
vendored
Normal file
15
.github/workflows/process-pull-request.yml
vendored
Normal 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:'
|
1
.github/workflows/requirements-printer-linter.txt
vendored
Normal file
1
.github/workflows/requirements-printer-linter.txt
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
pyyaml
|
82
.github/workflows/unit-test-post.yml
vendored
Normal file
82
.github/workflows/unit-test-post.yml
vendored
Normal 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 }}"
|
55
.github/workflows/unit-test.yml
vendored
55
.github/workflows/unit-test.yml
vendored
|
@ -1,6 +1,5 @@
|
|||
---
|
||||
name: unit-test
|
||||
# FIXME: This should be a reusable workflow
|
||||
|
||||
on:
|
||||
push:
|
||||
|
@ -76,6 +75,8 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Setup Python and pip
|
||||
uses: actions/setup-python@v4
|
||||
|
@ -136,45 +137,21 @@ jobs:
|
|||
pytest --junitxml=junit_cura.xml
|
||||
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
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Test Results
|
||||
path: "tests/**/*.xml"
|
||||
|
||||
publish-test-results:
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
checks: write
|
||||
pull-requests: write # to comment on pull request
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
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 }}"
|
||||
name: test-result
|
||||
path: |
|
||||
tests/**/*.xml
|
||||
tests/pr-id.txt
|
||||
tests/pr-head-repo.txt
|
||||
tests/pr-head-ref.txt
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -99,3 +99,4 @@ conanbuildinfo.txt
|
|||
graph_info.json
|
||||
Ultimaker-Cura.spec
|
||||
.run/
|
||||
/printer-linter/src/printerlinter.egg-info/
|
||||
|
|
15
.printer-linter
Normal file
15
.printer-linter
Normal 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
|
|
@ -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.
|
||||
|
||||
CuraAppName = "{{ cura_app_name }}"
|
||||
|
|
10
conanfile.py
10
conanfile.py
|
@ -16,12 +16,12 @@ required_conan_version = ">=1.52.0"
|
|||
class CuraConan(ConanFile):
|
||||
name = "cura"
|
||||
license = "LGPL-3.0"
|
||||
author = "Ultimaker B.V."
|
||||
author = "UltiMaker"
|
||||
url = "https://github.com/Ultimaker/cura"
|
||||
description = "3D printer / slicing GUI built on top of the Uranium framework"
|
||||
topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer")
|
||||
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"
|
||||
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",
|
||||
"devtools": False,
|
||||
"cloud_api_version": "1",
|
||||
"display_name": "Ultimaker Cura",
|
||||
"display_name": "UltiMaker Cura",
|
||||
"cura_debug_mode": False, # Not yet implemented
|
||||
"internal": False,
|
||||
}
|
||||
|
@ -226,13 +226,13 @@ class CuraConan(ConanFile):
|
|||
# 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")])
|
||||
|
||||
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())
|
||||
|
||||
version = self.conf_info.get("user.cura:version", default = self.version, check_type = str)
|
||||
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(
|
||||
name = str(self.options.display_name).replace(" ", "-"),
|
||||
display_name = self.options.display_name,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
# ---------
|
||||
# General constants used in Cura
|
||||
# ---------
|
||||
DEFAULT_CURA_APP_NAME = "cura"
|
||||
DEFAULT_CURA_DISPLAY_NAME = "Ultimaker Cura"
|
||||
DEFAULT_CURA_DISPLAY_NAME = "UltiMaker Cura"
|
||||
DEFAULT_CURA_VERSION = "dev"
|
||||
DEFAULT_CURA_BUILD_TYPE = ""
|
||||
DEFAULT_CURA_DEBUG_MODE = False
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import platform
|
||||
import traceback
|
||||
|
@ -110,7 +110,7 @@ class CrashHandler:
|
|||
layout = QVBoxLayout(dialog)
|
||||
|
||||
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>Backups can be found in the configuration folder.</p>
|
||||
<p>Please send us this Crash Report to fix the problem.</p>
|
||||
|
@ -119,7 +119,7 @@ class CrashHandler:
|
|||
layout.addWidget(label)
|
||||
|
||||
# "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)
|
||||
|
||||
show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog)
|
||||
|
|
|
@ -274,7 +274,7 @@ class AuthorizationService:
|
|||
self._unable_to_get_data_message.show()
|
||||
else:
|
||||
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"),
|
||||
message_type = Message.MessageType.ERROR)
|
||||
Logger.warning("Unable to get user profile using auth data from preferences.")
|
||||
|
|
48
cura/Settings/ActiveQuality.py
Normal file
48
cura/Settings/ActiveQuality.py
Normal 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()
|
|
@ -40,6 +40,7 @@ from cura.Settings.cura_empty_instance_containers import (empty_definition_chang
|
|||
empty_material_container, empty_quality_container,
|
||||
empty_quality_changes_container, empty_intent_container)
|
||||
from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT
|
||||
from .ActiveQuality import ActiveQuality
|
||||
|
||||
from .CuraStackBuilder import CuraStackBuilder
|
||||
|
||||
|
@ -1631,33 +1632,31 @@ class MachineManager(QObject):
|
|||
# Examples:
|
||||
# - "my_profile - Fine" (only based on a default quality, no intent involved)
|
||||
# - "my_profile - Engineering - Fine" (based on an intent)
|
||||
@pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged)
|
||||
def activeQualityDisplayNameMap(self) -> Dict[str, str]:
|
||||
@pyqtProperty("QList<QString>", notify = activeQualityDisplayNameChanged)
|
||||
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()
|
||||
if global_stack is None:
|
||||
return {"main": "",
|
||||
"suffix": ""}
|
||||
return ActiveQuality()
|
||||
|
||||
display_name = global_stack.quality.getName()
|
||||
|
||||
intent_category = self.activeIntentCategory
|
||||
if intent_category != "default":
|
||||
intent_display_name = IntentCategoryModel.translation(intent_category,
|
||||
"name",
|
||||
intent_category.title())
|
||||
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}
|
||||
return ActiveQuality(
|
||||
profile = global_stack.quality.getName(),
|
||||
intent_category = self.activeIntentCategory,
|
||||
intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()),
|
||||
custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None,
|
||||
layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None,
|
||||
is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported
|
||||
)
|
||||
|
||||
@pyqtSlot(str)
|
||||
def setIntentByCategory(self, intent_category: str) -> None:
|
||||
|
@ -1776,7 +1775,9 @@ class MachineManager(QObject):
|
|||
@pyqtProperty(bool, notify = activeQualityGroupChanged)
|
||||
def hasNotSupportedQuality(self) -> bool:
|
||||
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)
|
||||
def isActiveQualityCustom(self) -> bool:
|
||||
|
|
|
@ -17,4 +17,4 @@ export OPENSSL_CONF="$scriptdir/openssl.cnf"
|
|||
# unset `QT_STYLE_OVERRIDE` as a precaution
|
||||
unset QT_STYLE_OVERRIDE
|
||||
|
||||
$scriptdir/Ultimaker-Cura "$@"
|
||||
$scriptdir/UltiMaker-Cura "$@"
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
import argparse # Command line arguments parsing and help.
|
||||
from jinja2 import Template
|
||||
import os # Finding installation directory.
|
||||
|
@ -71,6 +72,6 @@ if __name__ == "__main__":
|
|||
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("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()
|
||||
build_appimage(args.dist_path, args.version, args.filename)
|
||||
|
|
|
@ -3,16 +3,16 @@
|
|||
<id>com.ultimaker.cura</id>
|
||||
<metadata_license>CC0-1.0</metadata_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>
|
||||
<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>
|
||||
<url type="homepage">https://ultimaker.com/en/software/ultimaker-cura</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<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>
|
||||
</screenshots>
|
||||
</component>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Name=Ultimaker Cura
|
||||
Name[de]=Ultimaker Cura
|
||||
Name=UltiMaker Cura
|
||||
Name[de]=UltiMaker Cura
|
||||
GenericName=3D Printing Software
|
||||
GenericName[de]=3D-Druck-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.
|
||||
Exec=Ultimaker-Cura %F
|
||||
Exec=UltiMaker-Cura %F
|
||||
Icon=cura-icon
|
||||
Terminal=false
|
||||
Type=Application
|
||||
|
|
|
@ -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.
|
||||
|
||||
!define APP_NAME "{{ app_name }}"
|
||||
|
@ -64,7 +64,7 @@ InstallDir "$PROGRAMFILES64\${APP_NAME}"
|
|||
|
||||
!ifdef REG_START_MENU
|
||||
!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_KEY "${UNINSTALL_PATH}"
|
||||
!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"
|
||||
|
||||
!ifdef 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"
|
||||
WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}"
|
||||
CreateShortCut "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url"
|
||||
!endif
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
!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"
|
||||
|
||||
!ifdef 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"
|
||||
WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}"
|
||||
CreateShortCut "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url"
|
||||
!endif
|
||||
!endif
|
||||
|
||||
|
@ -170,7 +170,7 @@ RmDir /r /REBOOTOK "$INSTDIR"
|
|||
Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk"
|
||||
Delete "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk"
|
||||
!ifdef WEB_SITE
|
||||
Delete "$SMPROGRAMS\$SM_Folder\Ultimaker Cura website.lnk"
|
||||
Delete "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk"
|
||||
!endif
|
||||
RmDir "$SMPROGRAMS\$SM_Folder"
|
||||
!endif
|
||||
|
@ -179,7 +179,7 @@ RmDir "$SMPROGRAMS\$SM_Folder"
|
|||
Delete "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk"
|
||||
Delete "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk"
|
||||
!ifdef WEB_SITE
|
||||
Delete "$SMPROGRAMS\{{ app_name }}\Ultimaker Cura website.lnk"
|
||||
Delete "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk"
|
||||
!endif
|
||||
RmDir "$SMPROGRAMS\{{ app_name }}"
|
||||
!endif
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
import os
|
||||
import argparse # Command line arguments parsing and help.
|
||||
import subprocess
|
||||
|
@ -16,15 +18,15 @@ def generate_nsi(source_path: str, dist_path: str, filename: str):
|
|||
dist_loc = Path(os.getcwd(), dist_path)
|
||||
source_loc = Path(os.getcwd(), source_path)
|
||||
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 = {}
|
||||
for dist_path in dist_paths:
|
||||
if "__pycache__" not in dist_path.parts:
|
||||
out_path = instdir.joinpath(dist_path).parent
|
||||
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:
|
||||
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()
|
||||
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(
|
||||
app_name = f"Ultimaker Cura {os.getenv('CURA_VERSION_FULL')}",
|
||||
main_app = "Ultimaker-Cura.exe",
|
||||
app_name = f"UltiMaker Cura {os.getenv('CURA_VERSION_FULL')}",
|
||||
main_app = "UltiMaker-Cura.exe",
|
||||
version = os.getenv('CURA_VERSION_FULL'),
|
||||
version_major = os.environ.get("CURA_VERSION_MAJOR"),
|
||||
version_minor = os.environ.get("CURA_VERSION_MINOR"),
|
||||
version_patch = os.environ.get("CURA_VERSION_PATCH"),
|
||||
company = "Ultimaker B.V.",
|
||||
company = "UltiMaker",
|
||||
web_site = "https://ultimaker.com",
|
||||
year = datetime.now().year,
|
||||
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
|
||||
)
|
||||
|
||||
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)
|
||||
|
||||
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):
|
||||
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)
|
||||
|
||||
|
||||
|
@ -74,7 +76,7 @@ if __name__ == "__main__":
|
|||
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("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()
|
||||
generate_nsi(args.source_path, args.dist_path, args.filename)
|
||||
build(args.dist_path)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 604 KiB |
Binary file not shown.
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 381 KiB |
|
@ -1,3 +1,7 @@
|
|||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
|
||||
import os
|
||||
import argparse # Command line arguments parsing and help.
|
||||
import subprocess
|
||||
|
@ -14,11 +18,11 @@ def build_dmg(source_path: str, dist_path: str, filename: str) -> None:
|
|||
"--app-drop-link", "520", "272",
|
||||
"--volicon", f"{source_path}/packaging/icons/VolumeIcons_Cura.icns",
|
||||
"--icon-size", "90",
|
||||
"--icon", "Ultimaker-Cura.app", "169", "272",
|
||||
"--icon", "UltiMaker-Cura.app", "169", "272",
|
||||
"--eula", f"{source_path}/packaging/cura_license.txt",
|
||||
"--background", f"{source_path}/packaging/dmg/cura_background_dmg.png",
|
||||
f"{dist_path}/{filename}",
|
||||
f"{dist_path}/Ultimaker-Cura.app"]
|
||||
f"{dist_path}/UltiMaker-Cura.app"]
|
||||
|
||||
subprocess.run(arguments)
|
||||
|
||||
|
@ -57,7 +61,7 @@ if __name__ == "__main__":
|
|||
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("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()
|
||||
build_dmg(args.source_path, args.dist_path, args.filename)
|
||||
sign(args.dist_path, args.filename)
|
||||
|
|
|
@ -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.
|
||||
|
||||
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(
|
||||
action_id = "report_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]"
|
||||
)
|
||||
self._slicing_error_message.actionTriggered.connect(self._reportBackendError)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import json
|
||||
from typing import List, Dict, Any, Set
|
||||
|
@ -142,7 +142,7 @@ class CloudPackageChecker(QObject):
|
|||
sync_message = Message(self._i18n_catalog.i18nc(
|
||||
"@info:generic",
|
||||
"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",
|
||||
name = self._i18n_catalog.i18nc("@action:button", "Sync"),
|
||||
icon = "",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import tempfile
|
||||
from typing import Dict, List, Any
|
||||
|
@ -92,7 +92,7 @@ class DownloadPresenter:
|
|||
lifetime = 0,
|
||||
use_inactivity_timer = False,
|
||||
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:
|
||||
self._progress[package_id]["received"] = self._progress[package_id]["total"]
|
||||
|
|
|
@ -92,7 +92,7 @@ class PackageModel(QObject):
|
|||
"display_name": display_name,
|
||||
"package_version": package_version,
|
||||
"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.setIsMissingPackageInformation(True)
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
|
@ -12,7 +13,7 @@ Packages
|
|||
|
||||
bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner");
|
||||
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"
|
||||
onRemoveBanner: function() {
|
||||
UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false);
|
||||
|
|
|
@ -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.
|
||||
|
||||
import UM 1.4 as UM
|
||||
|
@ -9,7 +9,7 @@ Packages
|
|||
|
||||
bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner")
|
||||
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"
|
||||
onRemoveBanner: function() {
|
||||
UM.Preferences.setValue("cura/market_place_show_material_banner", false);
|
||||
|
|
|
@ -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.
|
||||
|
||||
import UM 1.4 as UM
|
||||
|
@ -9,7 +9,7 @@ Packages
|
|||
|
||||
bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner")
|
||||
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"
|
||||
onRemoveBanner: function() {
|
||||
UM.Preferences.setValue("cura/market_place_show_plugin_banner", false)
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.15
|
||||
|
@ -18,9 +18,9 @@ Control
|
|||
{
|
||||
switch(packageData.packageType)
|
||||
{
|
||||
case "plugin": return catalog.i18nc("@info", "Ultimaker Verified Plug-in");
|
||||
case "material": return catalog.i18nc("@info", "Ultimaker Certified Material");
|
||||
default: return catalog.i18nc("@info", "Ultimaker Verified Package");
|
||||
case "plugin": return catalog.i18nc("@info", "UltiMaker Verified Plug-in");
|
||||
case "material": return catalog.i18nc("@info", "UltiMaker Certified Material");
|
||||
default: return catalog.i18nc("@info", "UltiMaker Verified Package");
|
||||
}
|
||||
}
|
||||
visible: parent.hovered
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.7
|
||||
|
@ -21,5 +21,13 @@ Item
|
|||
anchors.centerIn: parent
|
||||
|
||||
machineListModel: Cura.MachineListModel {}
|
||||
|
||||
machineManager: Cura.MachineManager
|
||||
|
||||
onSelectPrinter: function(machine)
|
||||
{
|
||||
toggleContent();
|
||||
Cura.MachineManager.setActiveMachine(machine.id);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.10
|
||||
|
@ -70,7 +70,7 @@ Window
|
|||
left: parent.left
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class UFPReader(MeshReader):
|
|||
MimeTypeDatabase.addMimeType(
|
||||
MimeType(
|
||||
name = "application/x-ufp",
|
||||
comment = "Ultimaker Format Package",
|
||||
comment = "UltiMaker Format Package",
|
||||
suffixes = ["ufp"]
|
||||
)
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#Copyright (c) 2019 Ultimaker B.V.
|
||||
#Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import sys
|
||||
|
||||
|
@ -19,7 +19,7 @@ def getMetaData():
|
|||
{
|
||||
"mime_type": "application/x-ufp",
|
||||
"extension": "ufp",
|
||||
"description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package")
|
||||
"description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package")
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
import json
|
||||
from dataclasses import asdict
|
||||
from typing import cast, List, Dict
|
||||
|
||||
from Charon.VirtualFile import VirtualFile # To open UFP files.
|
||||
|
@ -40,7 +41,7 @@ class UFPWriter(MeshWriter):
|
|||
MimeTypeDatabase.addMimeType(
|
||||
MimeType(
|
||||
name = "application/x-ufp",
|
||||
comment = "Ultimaker Format Package",
|
||||
comment = "UltiMaker Format Package",
|
||||
suffixes = ["ufp"]
|
||||
)
|
||||
)
|
||||
|
@ -225,8 +226,7 @@ class UFPWriter(MeshWriter):
|
|||
"changes": {},
|
||||
"all_settings": {},
|
||||
},
|
||||
"intent": machine_manager.activeIntentCategory,
|
||||
"quality": machine_manager.activeQualityOrQualityChangesName,
|
||||
"quality": asdict(machine_manager.activeQualityDisplayNameMap()),
|
||||
}
|
||||
|
||||
global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack())
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#Copyright (c) 2018 Ultimaker B.V.
|
||||
#Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import sys
|
||||
|
||||
|
@ -25,7 +25,7 @@ def getMetaData():
|
|||
"mime_type": "application/x-ufp",
|
||||
"mode": MeshWriter.OutputMode.BinaryMode,
|
||||
"extension": "ufp",
|
||||
"description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package")
|
||||
"description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package")
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.3
|
||||
|
@ -284,7 +284,7 @@ Item
|
|||
MonitorInfoBlurb
|
||||
{
|
||||
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.")
|
||||
target: cameraButton
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.15
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from time import time
|
||||
import os
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Copyright (c) 2021 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import os
|
||||
from typing import Dict, List, Optional, Set
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# Copyright (c) 2022 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
# Copyright (c) 2022 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from UM import i18nCatalog
|
||||
from UM.Message import Message
|
||||
from cura.CuraApplication import CuraApplication
|
||||
|
|
|
@ -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.
|
||||
|
||||
import QtQuick 2.10
|
||||
|
@ -27,7 +27,7 @@ Cura.MachineAction
|
|||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
width: parent.width
|
||||
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")
|
||||
}
|
||||
|
||||
|
|
|
@ -1125,21 +1125,28 @@ class XmlMaterialProfile(InstanceContainer):
|
|||
id_list = list(id_list)
|
||||
return id_list
|
||||
|
||||
__product_to_id_map: Optional[Dict[str, List[str]]] = None
|
||||
|
||||
@classmethod
|
||||
def getProductIdMap(cls) -> Dict[str, List[str]]:
|
||||
"""Gets a mapping from product names in the XML files to their definition IDs.
|
||||
|
||||
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"))
|
||||
product_to_id_file = os.path.join(plugin_path, "product_to_id.json")
|
||||
with open(product_to_id_file, encoding = "utf-8") as f:
|
||||
product_to_id_map = json.load(f)
|
||||
product_to_id_map = {key: [value] for key, value in product_to_id_map.items()}
|
||||
contents = ""
|
||||
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.
|
||||
#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
|
||||
def _parseCompatibleValue(value: str):
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
{
|
||||
"Ultimaker 2": "ultimaker2",
|
||||
"Ultimaker 2 Extended": "ultimaker2_extended",
|
||||
"Ultimaker 2 Extended+": "ultimaker2_extended_plus",
|
||||
"Ultimaker 2 Go": "ultimaker2_go",
|
||||
"Ultimaker 2+": "ultimaker2_plus",
|
||||
"Ultimaker 2+ Connect": "ultimaker2_plus_connect",
|
||||
"Ultimaker 3": "ultimaker3",
|
||||
"Ultimaker 3 Extended": "ultimaker3_extended",
|
||||
"Ultimaker S3": "ultimaker_s3",
|
||||
"Ultimaker S5": "ultimaker_s5",
|
||||
"Ultimaker #": "ultimaker#",
|
||||
"Ultimaker # Extended": "ultimaker#_extended",
|
||||
"Ultimaker # Extended+": "ultimaker#_extended_plus",
|
||||
"Ultimaker # Go": "ultimaker#_go",
|
||||
"Ultimaker #+": "ultimaker#_plus",
|
||||
"Ultimaker #+ Connect": "ultimaker#_plus_connect",
|
||||
"Ultimaker S#": "ultimaker_s#",
|
||||
"Ultimaker Original": "ultimaker_original",
|
||||
"Ultimaker Original+": "ultimaker_original_plus",
|
||||
"Ultimaker Original Dual Extrusion": "ultimaker_original_dual",
|
||||
|
|
33
printer-linter/README.md
Normal file
33
printer-linter/README.md
Normal 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
|
||||
|
17
printer-linter/pyproject.toml
Normal file
17
printer-linter/pyproject.toml
Normal 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
10
printer-linter/setup.cfg
Normal 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
6
printer-linter/setup.py
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
if __name__ == "__main__":
|
||||
setup()
|
4
printer-linter/src/printerlinter/__init__.py
Normal file
4
printer-linter/src/printerlinter/__init__.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
from .diagnostic import Diagnostic
|
||||
from .factory import getLinter
|
||||
|
||||
__all__ = ["Diagnostic", "getLinter"]
|
34
printer-linter/src/printerlinter/diagnostic.py
Normal file
34
printer-linter/src/printerlinter/diagnostic.py
Normal 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
|
||||
}
|
26
printer-linter/src/printerlinter/factory.py
Normal file
26
printer-linter/src/printerlinter/factory.py
Normal 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
|
4
printer-linter/src/printerlinter/formatters/__init__.py
Normal file
4
printer-linter/src/printerlinter/formatters/__init__.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
from .def_json_formatter import DefJsonFormatter
|
||||
from .inst_cfg_formatter import InstCfgFormatter
|
||||
|
||||
__all__ = ["DefJsonFormatter", "InstCfgFormatter"]
|
|
@ -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])))
|
16
printer-linter/src/printerlinter/formatters/formatter.py
Normal file
16
printer-linter/src/printerlinter/formatters/formatter.py
Normal 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
|
|
@ -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))
|
6
printer-linter/src/printerlinter/linters/__init__.py
Normal file
6
printer-linter/src/printerlinter/linters/__init__.py
Normal 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"]
|
122
printer-linter/src/printerlinter/linters/defintion.py
Normal file
122
printer-linter/src/printerlinter/linters/defintion.py
Normal 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}
|
20
printer-linter/src/printerlinter/linters/linter.py
Normal file
20
printer-linter/src/printerlinter/linters/linter.py
Normal 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
|
47
printer-linter/src/printerlinter/linters/meshes.py
Normal file
47
printer-linter/src/printerlinter/linters/meshes.py
Normal 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
|
9
printer-linter/src/printerlinter/linters/profile.py
Normal file
9
printer-linter/src/printerlinter/linters/profile.py
Normal 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
|
21
printer-linter/src/printerlinter/replacement.py
Normal file
21
printer-linter/src/printerlinter/replacement.py
Normal 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}
|
117
printer-linter/src/terminal.py
Normal file
117
printer-linter/src/terminal.py
Normal 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()
|
|
@ -1,5 +1,6 @@
|
|||
pytest
|
||||
pyinstaller
|
||||
pyinstaller-hooks-contrib
|
||||
pyyaml
|
||||
sip==6.5.1
|
||||
jinja2
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -27,7 +27,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -61,7 +61,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -78,7 +78,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -95,7 +95,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -112,7 +112,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -129,7 +129,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -146,7 +146,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -163,7 +163,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -180,7 +180,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -197,7 +197,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -214,7 +214,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -248,7 +248,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -265,7 +265,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -282,7 +282,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -316,7 +316,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -333,7 +333,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -350,7 +350,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -367,7 +367,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -384,7 +384,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -401,7 +401,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -418,7 +418,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -435,7 +435,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -452,7 +452,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -469,7 +469,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -486,7 +486,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -503,7 +503,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -520,7 +520,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -537,7 +537,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -554,7 +554,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -571,7 +571,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -588,7 +588,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -605,7 +605,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -622,7 +622,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -639,7 +639,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -656,7 +656,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -673,7 +673,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -690,7 +690,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -707,7 +707,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -724,7 +724,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -741,7 +741,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -758,7 +758,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -775,7 +775,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -792,7 +792,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -809,7 +809,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -826,7 +826,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -843,7 +843,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -860,7 +860,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -877,7 +877,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -894,7 +894,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -911,7 +911,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -928,7 +928,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -945,7 +945,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -962,7 +962,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -979,7 +979,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -997,7 +997,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -1031,7 +1031,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -1048,7 +1048,7 @@
|
|||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
|
@ -1609,7 +1609,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1628,7 +1628,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/breakaway",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1647,7 +1647,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1666,7 +1666,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/cpe",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1685,7 +1685,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1704,7 +1704,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/pc",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1723,7 +1723,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1742,7 +1742,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/pp",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1761,7 +1761,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1780,7 +1780,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/tpu-95a",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
@ -1799,7 +1799,7 @@
|
|||
"website": "https://ultimaker.com/products/materials/tough-pla",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"display_name": "UltiMaker",
|
||||
"email": "materials@ultimaker.com",
|
||||
"website": "https://ultimaker.com",
|
||||
"description": "Professional 3D printing made accessible.",
|
||||
|
|
|
@ -2,65 +2,64 @@
|
|||
"version": 2,
|
||||
"name": "Sovol-SV01",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Sovol",
|
||||
"manufacturer": "Sovol 3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_variants": false,
|
||||
"has_machine_quality": false,
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains": {
|
||||
"0": "SV01_extruder_0"
|
||||
}
|
||||
"has_variants": false,
|
||||
"machine_extruder_trains": { "0": "SV01_extruder_0" },
|
||||
"preferred_quality_type": "draft"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "SV01" },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_width": { "default_value": 280 },
|
||||
"machine_depth": { "default_value": 260 },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_max_feedrate_x": { "value": 500 },
|
||||
"machine_max_feedrate_y": { "value": 500 },
|
||||
"machine_max_feedrate_z": { "value": 10 },
|
||||
"machine_max_feedrate_e": { "value": 50 },
|
||||
"machine_max_acceleration_x": { "value": 500 },
|
||||
"machine_max_acceleration_y": { "value": 500 },
|
||||
"machine_max_acceleration_z": { "value": 100 },
|
||||
"machine_max_acceleration_e": { "value": 5000 },
|
||||
"machine_acceleration": { "value": 500 },
|
||||
"machine_max_jerk_xy": { "value": 10 },
|
||||
"machine_max_jerk_z": { "value": 0.4 },
|
||||
"machine_max_jerk_e": { "value": 5 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"overrides":
|
||||
{
|
||||
"acceleration_enabled": { "value": false },
|
||||
"acceleration_print": { "value": 500 },
|
||||
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
|
||||
"acceleration_travel": { "value": 500 },
|
||||
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
|
||||
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
|
||||
"adhesion_type": { "value": "'skirt'" },
|
||||
"infill_before_walls": { "value": false },
|
||||
"infill_overlap": { "value": 30.0 },
|
||||
"infill_pattern": { "value": "'lines'" },
|
||||
"infill_wipe_dist": { "value": 0.0 },
|
||||
"jerk_enabled": { "value": false },
|
||||
"jerk_print": { "value": 8 },
|
||||
"jerk_travel": { "value": "jerk_print" },
|
||||
"jerk_travel_layer_0": { "value": "jerk_travel" },
|
||||
"acceleration_enabled": { "value": false },
|
||||
"jerk_enabled": { "value": false },
|
||||
"speed_print": { "value": 50.0 } ,
|
||||
"skirt_brim_speed": { "value": "speed_layer_0" },
|
||||
"optimize_wall_printing_order": { "value": "True" },
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||
"material_final_print_temperature": { "value": "material_print_temperature" },
|
||||
"z_seam_type": { "value": "'back'" },
|
||||
"z_seam_corner": { "value": "'z_seam_corner_weighted'" },
|
||||
"infill_pattern": { "value": "'lines'" },
|
||||
"infill_before_walls": { "value": false },
|
||||
"infill_overlap": { "value": 30.0 },
|
||||
"skin_overlap": { "value": 10.0 },
|
||||
"infill_wipe_dist": { "value": 0.0 },
|
||||
"wall_0_wipe_dist": { "value": 0.0 },
|
||||
"retraction_amount": { "default_value": 3},
|
||||
"retraction_speed": { "default_value": 50},
|
||||
"adhesion_type": { "value": "'skirt'" },
|
||||
"machine_acceleration": { "value": 500 },
|
||||
"machine_depth": { "default_value": 240 },
|
||||
"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_extruder_count": { "default_value": 1 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_max_acceleration_e": { "value": 5000 },
|
||||
"machine_max_acceleration_x": { "value": 500 },
|
||||
"machine_max_acceleration_y": { "value": 500 },
|
||||
"machine_max_acceleration_z": { "value": 100 },
|
||||
"machine_max_feedrate_e": { "value": 50 },
|
||||
"machine_max_feedrate_x": { "value": 500 },
|
||||
"machine_max_feedrate_y": { "value": 500 },
|
||||
"machine_max_feedrate_z": { "value": 10 },
|
||||
"machine_max_jerk_e": { "value": 5 },
|
||||
"machine_max_jerk_xy": { "value": 10 },
|
||||
"machine_max_jerk_z": { "value": 0.4 },
|
||||
"machine_name": { "default_value": "SV01" },
|
||||
"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" },
|
||||
"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_width": { "default_value": 280 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"material_final_print_temperature": { "value": "material_print_temperature" },
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||
"optimize_wall_printing_order": { "value": "True" },
|
||||
"retraction_amount": { "default_value": 3 },
|
||||
"retraction_speed": { "default_value": 50 },
|
||||
"skin_overlap": { "value": 10.0 },
|
||||
"skirt_brim_speed": { "value": "speed_layer_0" },
|
||||
"speed_print": { "value": 50.0 },
|
||||
"wall_0_wipe_dist": { "value": 0.0 },
|
||||
"z_seam_corner": { "value": "'z_seam_corner_weighted'" },
|
||||
"z_seam_type": { "value": "'back'" }
|
||||
}
|
||||
}
|
|
@ -2,81 +2,81 @@
|
|||
"version": 2,
|
||||
"name": "Sovol-SV02",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Sovol",
|
||||
"manufacturer": "Sovol 3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_variants": false,
|
||||
"has_machine_quality": false,
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains": {
|
||||
"has_variants": false,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "SV02_extruder_0",
|
||||
"1": "SV02_extruder_1"
|
||||
}
|
||||
},
|
||||
"preferred_quality_type": "draft"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "SV02" },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_width": { "default_value": 300 },
|
||||
"machine_depth": { "default_value": 250 },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"retraction_amount": { "default_value": 5},
|
||||
"retraction_speed": { "default_value": 50},
|
||||
"gantry_height": { "value": "30" },
|
||||
"speed_print": { "default_value": 50 },
|
||||
"default_material_print_temperature": { "value": 195 },
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||
"material_final_print_temperature": { "value": 195 },
|
||||
"machine_max_feedrate_x": { "value": 500 },
|
||||
"machine_max_feedrate_y": { "value": 500 },
|
||||
"machine_max_feedrate_z": { "value": 10 },
|
||||
"machine_max_feedrate_e": { "value": 50 },
|
||||
"machine_max_acceleration_x": { "value": 500 },
|
||||
"machine_max_acceleration_y": { "value": 500 },
|
||||
"machine_max_acceleration_z": { "value": 100 },
|
||||
"machine_max_acceleration_e": { "value": 500 },
|
||||
"machine_acceleration": { "value": 500 },
|
||||
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
|
||||
"overrides":
|
||||
{
|
||||
"acceleration_enabled": { "value": false },
|
||||
"acceleration_print": { "value": 500 },
|
||||
"acceleration_travel": { "value": 500 },
|
||||
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
|
||||
"adhesion_extruder_nr": { "value": 1 },
|
||||
"adhesion_type": { "value": "'skirt'" },
|
||||
"brim_replaces_support": { "value": false },
|
||||
"brim_width": { "value": 4 },
|
||||
"coasting_enable": { "default_value": true },
|
||||
"default_material_print_temperature": { "value": 195 },
|
||||
"gantry_height": { "value": "30" },
|
||||
"infill_before_walls": { "value": false },
|
||||
"infill_overlap": { "value": 30.0 },
|
||||
"infill_pattern": { "value": "'lines'" },
|
||||
"infill_sparse_density": { "value": "15" },
|
||||
"infill_wipe_dist": { "value": 0.0 },
|
||||
"jerk_enabled": { "value": false },
|
||||
"jerk_print": { "value": 8 },
|
||||
"jerk_travel": { "value": "jerk_print" },
|
||||
"jerk_travel_layer_0": { "value": "jerk_travel" },
|
||||
"acceleration_enabled": { "value": false },
|
||||
"jerk_enabled": { "value": false },
|
||||
"machine_acceleration": { "value": 500 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"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" },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_max_acceleration_e": { "value": 500 },
|
||||
"machine_max_acceleration_x": { "value": 500 },
|
||||
"machine_max_acceleration_y": { "value": 500 },
|
||||
"machine_max_acceleration_z": { "value": 100 },
|
||||
"machine_max_feedrate_e": { "value": 50 },
|
||||
"machine_max_feedrate_x": { "value": 500 },
|
||||
"machine_max_feedrate_y": { "value": 500 },
|
||||
"machine_max_feedrate_z": { "value": 10 },
|
||||
"machine_max_jerk_e": { "default_value": 5.0 },
|
||||
"machine_max_jerk_xy": { "default_value": 5.0 },
|
||||
"machine_max_jerk_z": { "default_value": 0.4 },
|
||||
"machine_max_jerk_e": { "default_value": 5.0 },
|
||||
"machine_name": { "default_value": "SV02" },
|
||||
"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" },
|
||||
"machine_width": { "default_value": 280 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"material_final_print_temperature": { "value": 195 },
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||
"prime_tower_min_volume": { "value": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height'))/2" },
|
||||
"prime_tower_position_x": { "value": "240" },
|
||||
"prime_tower_position_y": { "value": "190" },
|
||||
"prime_tower_size": { "value": "30" },
|
||||
"prime_tower_wipe_enabled": { "default_value": true },
|
||||
"prime_tower_min_volume": { "value": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height'))/2"},
|
||||
"travel_retract_before_outer_wall": { "default_value": true },
|
||||
"infill_sparse_density": { "value": "15" },
|
||||
"infill_pattern": { "value": "'lines'" },
|
||||
"infill_before_walls": { "value": false },
|
||||
"infill_overlap": { "value": 30.0 },
|
||||
"retraction_amount": { "default_value": 5 },
|
||||
"retraction_speed": { "default_value": 50 },
|
||||
"skin_overlap": { "value": 10.0 },
|
||||
"infill_wipe_dist": { "value": 0.0 },
|
||||
"wall_0_wipe_dist": { "value": 0.0 },
|
||||
"adhesion_type": { "value": "'skirt'" },
|
||||
"brim_replaces_support": { "value": false },
|
||||
"skirt_gap": { "value": 2 },
|
||||
"skirt_line_count": { "value": 3 },
|
||||
"adhesion_extruder_nr": { "value": 1 },
|
||||
"brim_width": { "value": 4 },
|
||||
"coasting_enable": { "default_value": true },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"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" },
|
||||
"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" },
|
||||
"top_bottom_thickness": { "default_value": 1 }
|
||||
"speed_print": { "default_value": 50 },
|
||||
"top_bottom_thickness": { "default_value": 1 },
|
||||
"travel_retract_before_outer_wall": { "default_value": true },
|
||||
"wall_0_wipe_dist": { "value": 0.0 }
|
||||
}
|
||||
}
|
69
resources/definitions/ankermake_m5.def.json
Normal file
69
resources/definitions/ankermake_m5.def.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -29,7 +29,7 @@
|
|||
"machine_center_is_zero": { "default_value": false },
|
||||
"gantry_height": { "value": "0" },
|
||||
"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_max_acceleration_x": { "value": 3000 },
|
||||
|
|
25
resources/definitions/artillery_hornet.def.json
Normal file
25
resources/definitions/artillery_hornet.def.json
Normal 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 }
|
||||
}
|
||||
}
|
65
resources/definitions/biqu_hurakan.def.json
Executable file
65
resources/definitions/biqu_hurakan.def.json
Executable 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 }
|
||||
}
|
||||
}
|
28
resources/definitions/creality_cr10smart.def.json
Normal file
28
resources/definitions/creality_cr10smart.def.json
Normal 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 }
|
||||
}
|
||||
}
|
32
resources/definitions/creality_sermoonv1.def.json
Normal file
32
resources/definitions/creality_sermoonv1.def.json
Normal 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 }
|
||||
}
|
||||
}
|
|
@ -1,26 +1,27 @@
|
|||
{
|
||||
"name": "Dagoma Delta",
|
||||
"version": 2,
|
||||
"name": "Dagoma Delta",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"metadata":
|
||||
{
|
||||
"visible": false,
|
||||
"author": "Dagoma",
|
||||
"manufacturer": "Dagoma"
|
||||
"manufacturer": "Dagoma",
|
||||
"first_start_actions": [ "MachineSettingsAction" ]
|
||||
},
|
||||
"overrides": {
|
||||
"machine_width": {
|
||||
"default_value": 195.55
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 205
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 195.55
|
||||
},
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"overrides":
|
||||
{
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"default_material_print_temperature": { "default_value": 205 },
|
||||
"gantry_height": { "value": "0" },
|
||||
"infill_before_walls": { "value": "False" },
|
||||
"inset_direction": { "value": "'inside_out'" },
|
||||
"layer_height_0": { "default_value": 0.26 },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_depth": { "default_value": 195.55 },
|
||||
"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" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-36, -42],
|
||||
[-36, 42],
|
||||
|
@ -28,41 +29,14 @@
|
|||
[36, -42]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"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_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
|
||||
}
|
||||
"machine_height": { "default_value": 205 },
|
||||
"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_width": { "default_value": 195.55 },
|
||||
"retraction_amount": { "default_value": 3.8 },
|
||||
"retraction_speed": { "default_value": 60 },
|
||||
"skirt_line_count": { "default_value": 2 },
|
||||
"speed_print": { "default_value": 40 },
|
||||
"top_bottom_thickness": { "default_value": 1 }
|
||||
}
|
||||
}
|
|
@ -8,188 +8,33 @@
|
|||
"author": "Dagoma",
|
||||
"manufacturer": "Dagoma",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "dagoma_pro_430_base.3mf",
|
||||
"platform_offset": [-125, -118, -280],
|
||||
"platform": "dagoma_pro430.obj",
|
||||
"first_start_actions": [ "MachineSettingsAction" ],
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"variants_name": "Steel Nozzle Size",
|
||||
"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"
|
||||
]
|
||||
"variants_name": "Nozzle"
|
||||
},
|
||||
|
||||
"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 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"skirt_line_count": { "default_value": 3 },
|
||||
"nozzle_disallowed_areas": { "default_value": [ [[-215, 160], [-166, 160], [-215, 111]], [[215, 160], [166, 160], [215, 111]] ] },
|
||||
"machine_use_extruder_offset_to_offset_coords": {"default_value": false }
|
||||
"default_material_print_temperature":
|
||||
{
|
||||
"default_value": 205,
|
||||
"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" }
|
||||
}
|
||||
}
|
|
@ -1,40 +1,47 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Dagoma PRO 430B",
|
||||
"name": "Dagoma PRO 430 Bowden",
|
||||
"inherits": "dagoma_pro_430_base",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "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":
|
||||
{
|
||||
"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" },
|
||||
"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": "\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_acceleration": { "value": 1250 },
|
||||
"machine_max_jerk_xy": { "value": 10 },
|
||||
"machine_max_jerk_z": { "value": 0.3 },
|
||||
"machine_max_jerk_e": { "value": 5 },
|
||||
"machine_max_feedrate_e": { "default_value": 200 },
|
||||
"machine_steps_per_mm_e": { "default_value": 139.5 },
|
||||
"acceleration_enabled": { "value": true },
|
||||
"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 },
|
||||
"acceleration_travel": { "value": "acceleration_print", "maximum_value": 1500 },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 1250)", "maximum_value": 1500 },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_print * 800 / 1250)", "maximum_value": 1500 },
|
||||
"jerk_enabled": { "value": "True" },
|
||||
"jerk_print": { "value": "8", "minimum_value_warning": 8 },
|
||||
"jerk_travel": {"value": "10", "minimum_value_warning": 8 },
|
||||
"optimize_wall_printing_order": { "value": "True" }
|
||||
"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_extruder_count": { "default_value": 1 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-22.5, -22.5],
|
||||
[-22.5, 22.5],
|
||||
[22.5, 22.5],
|
||||
[22.5, -22.5]
|
||||
]
|
||||
},
|
||||
"machine_height": { "default_value": 350 },
|
||||
"machine_name": { "default_value": "Dagoma PRO 430 Bowden" },
|
||||
"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]
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
55
resources/definitions/dagoma_pro_430_directdrive.def.json
Normal file
55
resources/definitions/dagoma_pro_430_directdrive.def.json
Normal 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]
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
60
resources/definitions/dagoma_pro_430_dual.def.json
Normal file
60
resources/definitions/dagoma_pro_430_dual.def.json
Normal 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]
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
27
resources/definitions/dagoma_sigma.def.json
Normal file
27
resources/definitions/dagoma_sigma.def.json
Normal 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 }
|
||||
}
|
||||
}
|
27
resources/definitions/dxu_umo.def.json
Normal file
27
resources/definitions/dxu_umo.def.json
Normal 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\""
|
||||
}
|
||||
}
|
||||
}
|
33
resources/definitions/dxu_umo_dual.def.json
Normal file
33
resources/definitions/dxu_umo_dual.def.json
Normal 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\""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -14,10 +14,7 @@
|
|||
"has_machine_quality": false,
|
||||
"preferred_material": "generic_pla",
|
||||
"preferred_quality_type": "normal",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "fdmextruder"
|
||||
},
|
||||
"machine_extruder_trains": { "0": "fdmextruder" },
|
||||
"supports_usb_connection": true,
|
||||
"supports_network_connection": false
|
||||
},
|
||||
|
@ -291,7 +288,7 @@
|
|||
{
|
||||
"label": "Nozzle Angle",
|
||||
"description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "int",
|
||||
"default_value": 45,
|
||||
"maximum_value": "89",
|
||||
|
@ -325,9 +322,9 @@
|
|||
"machine_nozzle_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,
|
||||
"unit": "°C/s",
|
||||
"unit": "\u00b0C/s",
|
||||
"type": "float",
|
||||
"enabled": "machine_nozzle_temp_enabled",
|
||||
"settable_per_mesh": false,
|
||||
|
@ -336,9 +333,9 @@
|
|||
"machine_nozzle_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,
|
||||
"unit": "°C/s",
|
||||
"unit": "\u00b0C/s",
|
||||
"type": "float",
|
||||
"enabled": "machine_nozzle_temp_enabled",
|
||||
"settable_per_mesh": false,
|
||||
|
@ -446,12 +443,11 @@
|
|||
"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.",
|
||||
"type": "polygon",
|
||||
"default_value":
|
||||
[
|
||||
[ -20, 10 ],
|
||||
[ 10, 10 ],
|
||||
[ 10, -10 ],
|
||||
[ -20, -10 ]
|
||||
"default_value": [
|
||||
[-20, 10],
|
||||
[10, 10],
|
||||
[10, -10],
|
||||
[-20, -10]
|
||||
],
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false,
|
||||
|
@ -568,7 +564,7 @@
|
|||
{
|
||||
"label": "Maximum Acceleration X",
|
||||
"description": "Maximum acceleration for the motor of the X-direction",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 9000,
|
||||
"settable_per_mesh": false,
|
||||
|
@ -579,7 +575,7 @@
|
|||
{
|
||||
"label": "Maximum Acceleration Y",
|
||||
"description": "Maximum acceleration for the motor of the Y-direction.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 9000,
|
||||
"settable_per_mesh": false,
|
||||
|
@ -590,7 +586,7 @@
|
|||
{
|
||||
"label": "Maximum Acceleration Z",
|
||||
"description": "Maximum acceleration for the motor of the Z-direction.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"settable_per_mesh": false,
|
||||
|
@ -601,7 +597,7 @@
|
|||
{
|
||||
"label": "Maximum Filament Acceleration",
|
||||
"description": "Maximum acceleration for the motor of the filament.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 10000,
|
||||
"settable_per_mesh": false,
|
||||
|
@ -612,7 +608,7 @@
|
|||
{
|
||||
"label": "Default Acceleration",
|
||||
"description": "The default acceleration of print head movement.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 4000,
|
||||
"settable_per_mesh": false,
|
||||
|
@ -1100,7 +1096,7 @@
|
|||
"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.",
|
||||
"type": "float",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"default_value": 10,
|
||||
"minimum_value": "1",
|
||||
"minimum_value_warning": "5",
|
||||
|
@ -1302,7 +1298,7 @@
|
|||
"limit_to_extruder": "wall_0_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"z_seam_type":
|
||||
"z_seam_type":
|
||||
{
|
||||
"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.",
|
||||
|
@ -1373,10 +1369,10 @@
|
|||
"type": "enum",
|
||||
"options":
|
||||
{
|
||||
"z_seam_corner_none": "None",
|
||||
"z_seam_corner_inner": "Hide Seam",
|
||||
"z_seam_corner_outer": "Expose Seam",
|
||||
"z_seam_corner_any": "Hide or Expose Seam",
|
||||
"z_seam_corner_none": "None",
|
||||
"z_seam_corner_inner": "Hide Seam",
|
||||
"z_seam_corner_outer": "Expose Seam",
|
||||
"z_seam_corner_any": "Hide or Expose Seam",
|
||||
"z_seam_corner_weighted": "Smart Hiding"
|
||||
},
|
||||
"default_value": "z_seam_corner_inner",
|
||||
|
@ -1780,7 +1776,7 @@
|
|||
{
|
||||
"label": "Ironing Acceleration",
|
||||
"description": "The acceleration with which ironing is performed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -1925,8 +1921,8 @@
|
|||
"max_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.",
|
||||
"unit": "°",
|
||||
"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": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"minimum_value_warning": "2",
|
||||
|
@ -2232,7 +2228,7 @@
|
|||
{
|
||||
"label": "Minimum Infill Area",
|
||||
"description": "Don't generate areas of infill smaller than this (use skin instead).",
|
||||
"unit": "mm²",
|
||||
"unit": "mm\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"default_value": 0,
|
||||
|
@ -2252,8 +2248,8 @@
|
|||
"infill_support_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.",
|
||||
"unit": "°",
|
||||
"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": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"minimum_value_warning": "2",
|
||||
|
@ -2279,27 +2275,27 @@
|
|||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"skin_edge_support_layers":
|
||||
{
|
||||
"label": "Skin Edge Support Layers",
|
||||
"description": "The number of infill layers that supports skin edges.",
|
||||
"default_value": 4,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "10",
|
||||
"type": "int",
|
||||
"maximum_value": "999999",
|
||||
"value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))",
|
||||
"limit_to_extruder": "infill_extruder_nr",
|
||||
"enabled": "infill_sparse_density > 0",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
"skin_edge_support_layers":
|
||||
{
|
||||
"label": "Skin Edge Support Layers",
|
||||
"description": "The number of infill layers that supports skin edges.",
|
||||
"default_value": 4,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "10",
|
||||
"type": "int",
|
||||
"maximum_value": "999999",
|
||||
"value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))",
|
||||
"limit_to_extruder": "infill_extruder_nr",
|
||||
"enabled": "infill_sparse_density > 0",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -2315,7 +2311,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -2331,7 +2327,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -2347,7 +2343,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -2375,7 +2371,7 @@
|
|||
{
|
||||
"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",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 210,
|
||||
"minimum_value_warning": "0",
|
||||
|
@ -2390,7 +2386,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"resolve": "min(extruderValues('build_volume_temperature'))",
|
||||
|
@ -2405,7 +2401,7 @@
|
|||
{
|
||||
"label": "Printing Temperature",
|
||||
"description": "The temperature used for printing.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 210,
|
||||
"value": "default_material_print_temperature",
|
||||
|
@ -2421,7 +2417,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 215,
|
||||
"value": "material_print_temperature",
|
||||
|
@ -2437,7 +2433,7 @@
|
|||
{
|
||||
"label": "Initial Printing Temperature",
|
||||
"description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 200,
|
||||
"value": "max(-273.15, material_print_temperature - 10)",
|
||||
|
@ -2453,7 +2449,7 @@
|
|||
{
|
||||
"label": "Final Printing Temperature",
|
||||
"description": "The temperature to which to already start cooling down just before the end of printing.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"default_value": 195,
|
||||
"value": "max(-273.15, material_print_temperature - 15)",
|
||||
|
@ -2469,7 +2465,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°C/s",
|
||||
"unit": "\u00b0C/s",
|
||||
"type": "float",
|
||||
"default_value": 0.7,
|
||||
"minimum_value": "0",
|
||||
|
@ -2483,7 +2479,7 @@
|
|||
{
|
||||
"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",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"resolve": "max(extruderValues('default_material_bed_temperature'))",
|
||||
"default_value": 60,
|
||||
|
@ -2500,7 +2496,7 @@
|
|||
{
|
||||
"label": "Build Plate Temperature",
|
||||
"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",
|
||||
"default_value": 60,
|
||||
"value": "default_material_bed_temperature",
|
||||
|
@ -2518,7 +2514,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"resolve": "max(extruderValues('material_bed_temperature_layer_0'))",
|
||||
"default_value": 60,
|
||||
|
@ -2674,7 +2670,7 @@
|
|||
"label": "Break Preparation Temperature",
|
||||
"description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.",
|
||||
"type": "float",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"default_value": 50,
|
||||
"value": "material_print_temperature",
|
||||
"enabled": false,
|
||||
|
@ -2715,7 +2711,7 @@
|
|||
"label": "Break Temperature",
|
||||
"description": "The temperature at which the filament is broken for a clean break.",
|
||||
"type": "float",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"default_value": 50,
|
||||
"enabled": false,
|
||||
"minimum_value": "-273.15",
|
||||
|
@ -3034,7 +3030,7 @@
|
|||
"label": "Standby Temperature",
|
||||
"description": "The temperature of the nozzle when another nozzle is currently used for printing.",
|
||||
"type": "float",
|
||||
"unit": "°C",
|
||||
"unit": "\u00b0C",
|
||||
"default_value": 150,
|
||||
"minimum_value": "-273.15",
|
||||
"minimum_value_warning": "0",
|
||||
|
@ -3363,7 +3359,7 @@
|
|||
"speed_equalize_flow_width_factor":
|
||||
{
|
||||
"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",
|
||||
"unit": "%",
|
||||
"default_value": 100.0,
|
||||
|
@ -3397,7 +3393,7 @@
|
|||
{
|
||||
"label": "Print Acceleration",
|
||||
"description": "The acceleration with which printing happens.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3411,7 +3407,7 @@
|
|||
{
|
||||
"label": "Infill Acceleration",
|
||||
"description": "The acceleration with which infill is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3426,7 +3422,7 @@
|
|||
{
|
||||
"label": "Wall Acceleration",
|
||||
"description": "The acceleration with which the walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3441,7 +3437,7 @@
|
|||
{
|
||||
"label": "Outer Wall Acceleration",
|
||||
"description": "The acceleration with which the outermost walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3456,7 +3452,7 @@
|
|||
{
|
||||
"label": "Inner Wall Acceleration",
|
||||
"description": "The acceleration with which all inner walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3473,7 +3469,7 @@
|
|||
{
|
||||
"label": "Top Surface Skin Acceleration",
|
||||
"description": "The acceleration with which top surface skin layers are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3488,7 +3484,7 @@
|
|||
{
|
||||
"label": "Top/Bottom Acceleration",
|
||||
"description": "The acceleration with which top/bottom layers are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3503,7 +3499,7 @@
|
|||
{
|
||||
"label": "Support Acceleration",
|
||||
"description": "The acceleration with which the support structure is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3520,7 +3516,7 @@
|
|||
{
|
||||
"label": "Support Infill Acceleration",
|
||||
"description": "The acceleration with which the infill of support is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_support",
|
||||
|
@ -3536,7 +3532,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_support",
|
||||
|
@ -3553,7 +3549,7 @@
|
|||
{
|
||||
"label": "Support Roof Acceleration",
|
||||
"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",
|
||||
"default_value": 3000,
|
||||
"value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')",
|
||||
|
@ -3569,7 +3565,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')",
|
||||
|
@ -3589,7 +3585,7 @@
|
|||
{
|
||||
"label": "Prime Tower Acceleration",
|
||||
"description": "The acceleration with which the prime tower is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0.1",
|
||||
"minimum_value_warning": "100",
|
||||
|
@ -3605,7 +3601,7 @@
|
|||
{
|
||||
"label": "Travel Acceleration",
|
||||
"description": "The acceleration with which travel moves are made.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 5000,
|
||||
"minimum_value": "0.1",
|
||||
|
@ -3619,7 +3615,7 @@
|
|||
{
|
||||
"label": "Initial Layer Acceleration",
|
||||
"description": "The acceleration for the initial layer.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_print",
|
||||
|
@ -3634,7 +3630,7 @@
|
|||
{
|
||||
"label": "Initial Layer Print Acceleration",
|
||||
"description": "The acceleration during the printing of the initial layer.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_layer_0",
|
||||
|
@ -3648,7 +3644,7 @@
|
|||
{
|
||||
"label": "Initial Layer Travel Acceleration",
|
||||
"description": "The acceleration for travel moves in the initial layer.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_layer_0 * acceleration_travel / acceleration_print",
|
||||
|
@ -3665,7 +3661,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "acceleration_layer_0",
|
||||
|
@ -4057,7 +4053,7 @@
|
|||
{
|
||||
"label": "Retraction Extra Prime Amount",
|
||||
"description": "Some material can ooze away during a travel move, which can be compensated for here.",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"minimum_value_warning": "-0.0001",
|
||||
|
@ -4217,7 +4213,8 @@
|
|||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": true
|
||||
},
|
||||
"retraction_hop_enabled": {
|
||||
"retraction_hop_enabled":
|
||||
{
|
||||
"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.",
|
||||
"type": "bool",
|
||||
|
@ -4226,7 +4223,8 @@
|
|||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_hop_only_when_collides": {
|
||||
"retraction_hop_only_when_collides":
|
||||
{
|
||||
"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.",
|
||||
"type": "bool",
|
||||
|
@ -4235,7 +4233,8 @@
|
|||
"settable_per_mesh": true,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_hop": {
|
||||
"retraction_hop":
|
||||
{
|
||||
"label": "Z Hop Height",
|
||||
"description": "The height difference when performing a Z Hop.",
|
||||
"unit": "mm",
|
||||
|
@ -4247,7 +4246,8 @@
|
|||
"settable_per_mesh": true,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_hop_after_extruder_switch": {
|
||||
"retraction_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.",
|
||||
"type": "bool",
|
||||
|
@ -4533,7 +4533,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -4588,7 +4588,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "89.9999",
|
||||
|
@ -4634,8 +4634,8 @@
|
|||
"support_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.",
|
||||
"unit": "°",
|
||||
"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": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -4697,8 +4697,10 @@
|
|||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"children": {
|
||||
"support_roof_wall_count": {
|
||||
"children":
|
||||
{
|
||||
"support_roof_wall_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.",
|
||||
"default_value": 0,
|
||||
|
@ -4713,7 +4715,8 @@
|
|||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"support_bottom_wall_count": {
|
||||
"support_bottom_wall_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.",
|
||||
"default_value": 0,
|
||||
|
@ -4972,7 +4975,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"default_value": 10.0,
|
||||
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
|
@ -5057,7 +5060,7 @@
|
|||
{
|
||||
"label": "Minimum Support Area",
|
||||
"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",
|
||||
"default_value": 0.0,
|
||||
"minimum_value": "0",
|
||||
|
@ -5148,7 +5151,8 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"support_interface_skip_height": {
|
||||
"support_interface_skip_height":
|
||||
{
|
||||
"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.",
|
||||
"unit": "mm",
|
||||
|
@ -5309,7 +5313,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm²",
|
||||
"unit": "mm\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 1.0,
|
||||
"minimum_value": "0",
|
||||
|
@ -5322,7 +5326,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm²",
|
||||
"unit": "mm\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 1.0,
|
||||
"value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')",
|
||||
|
@ -5335,7 +5339,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm²",
|
||||
"unit": "mm\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 1.0,
|
||||
"value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')",
|
||||
|
@ -5492,7 +5496,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "int",
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "90",
|
||||
|
@ -5606,8 +5610,7 @@
|
|||
"label": "Skirt/Brim Extruder",
|
||||
"description": "The extruder train to use for printing the skirt or brim. This is used in multi-extrusion.",
|
||||
"type": "optional_extruder",
|
||||
"default_value": "0",
|
||||
"value": "adhesion_extruder_nr",
|
||||
"default_value": "-1",
|
||||
"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",
|
||||
"settable_per_mesh": false,
|
||||
|
@ -5725,7 +5728,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"brim_gap":
|
||||
"brim_gap":
|
||||
{
|
||||
"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.",
|
||||
|
@ -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.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"default_value": 2.5,
|
||||
"minimum_value": "0",
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'brim' and any(extruderValues('brim_outside_only'))",
|
||||
"limit_to_extruder": "skirt_brim_extruder_nr",
|
||||
|
@ -6072,7 +6075,7 @@
|
|||
{
|
||||
"label": "Raft Print Acceleration",
|
||||
"description": "The acceleration with which the raft is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"minimum_value": "0.1",
|
||||
|
@ -6088,7 +6091,7 @@
|
|||
{
|
||||
"label": "Raft Top Print Acceleration",
|
||||
"description": "The acceleration with which the top raft layers are printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "raft_acceleration",
|
||||
|
@ -6103,7 +6106,7 @@
|
|||
{
|
||||
"label": "Raft Middle Print Acceleration",
|
||||
"description": "The acceleration with which the middle raft layer is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "raft_acceleration",
|
||||
|
@ -6118,7 +6121,7 @@
|
|||
{
|
||||
"label": "Raft Base Print Acceleration",
|
||||
"description": "The acceleration with which the base raft layer is printed.",
|
||||
"unit": "mm/s²",
|
||||
"unit": "mm/s\u00b2",
|
||||
"type": "float",
|
||||
"default_value": 3000,
|
||||
"value": "raft_acceleration",
|
||||
|
@ -6297,7 +6300,7 @@
|
|||
{
|
||||
"label": "Prime Tower Minimum Volume",
|
||||
"description": "The minimum volume for each layer of the prime tower in order to purge enough material.",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"type": "float",
|
||||
"default_value": 6,
|
||||
"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.",
|
||||
"type": "bool",
|
||||
"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,
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
|
@ -6371,7 +6374,7 @@
|
|||
"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.",
|
||||
"type": "float",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"enabled": "resolveOrValue('ooze_shield_enabled')",
|
||||
"default_value": 60,
|
||||
"resolve": "min(extruderValues('ooze_shield_angle'))",
|
||||
|
@ -6424,7 +6427,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
"default_value": 22.5,
|
||||
|
@ -6538,7 +6541,7 @@
|
|||
"label": "Nozzle Switch Extra Prime Amount",
|
||||
"description": "Extra material to prime after nozzle switching.",
|
||||
"type": "float",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"default_value": 0,
|
||||
"minimum_value_warning": "0",
|
||||
"maximum_value_warning": "100",
|
||||
|
@ -6678,7 +6681,7 @@
|
|||
"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.",
|
||||
"type": "float",
|
||||
"unit": "μm²",
|
||||
"unit": "\u03bcm\u00b2",
|
||||
"default_value": 50000,
|
||||
"minimum_value": "0",
|
||||
"minimum_value_warning": "500",
|
||||
|
@ -6782,8 +6785,8 @@
|
|||
"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.",
|
||||
"unit": "°",
|
||||
"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": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "-89",
|
||||
"minimum_value_warning": "0",
|
||||
|
@ -6905,9 +6908,9 @@
|
|||
{
|
||||
"label": "Flow Temperature Graph",
|
||||
"description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).",
|
||||
"unit": "[[mm³,°C]]",
|
||||
"unit": "[[mm\u00b3,\u00b0C]]",
|
||||
"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",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -7030,8 +7033,8 @@
|
|||
"conical_overhang_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.",
|
||||
"unit": "°",
|
||||
"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": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "-89",
|
||||
"minimum_value_warning": "0",
|
||||
|
@ -7041,14 +7044,14 @@
|
|||
},
|
||||
"conical_overhang_hole_size":
|
||||
{
|
||||
"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.",
|
||||
"unit": "mm²",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"minimum_value_warning": "0",
|
||||
"default_value": 0,
|
||||
"enabled": "conical_overhang_enabled"
|
||||
"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\u00b2 will fill all holes in the models base.",
|
||||
"unit": "mm\u00b2",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"minimum_value_warning": "0",
|
||||
"default_value": 0,
|
||||
"enabled": "conical_overhang_enabled"
|
||||
},
|
||||
"coasting_enable":
|
||||
{
|
||||
|
@ -7063,7 +7066,7 @@
|
|||
{
|
||||
"label": "Coasting Volume",
|
||||
"description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"type": "float",
|
||||
"default_value": 0.064,
|
||||
"minimum_value": "0",
|
||||
|
@ -7076,7 +7079,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"type": "float",
|
||||
"default_value": 0.8,
|
||||
"minimum_value": "0",
|
||||
|
@ -7147,7 +7150,7 @@
|
|||
{
|
||||
"label": "Conical Support Angle",
|
||||
"description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "-90",
|
||||
"minimum_value_warning": "-45",
|
||||
|
@ -7191,7 +7194,7 @@
|
|||
"limit_to_extruder": "wall_0_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"magic_fuzzy_skin_thickness":
|
||||
"magic_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.",
|
||||
|
@ -7636,6 +7639,7 @@
|
|||
"enabled": "adaptive_layer_height_enabled",
|
||||
"unit": "mm",
|
||||
"default_value": 0.1,
|
||||
"minimum_value": "0.0",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
|
@ -7669,7 +7673,7 @@
|
|||
{
|
||||
"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.",
|
||||
"unit": "°",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"minimum_value": "0",
|
||||
"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.",
|
||||
"default_value": 10,
|
||||
"type": "float",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"enabled": "clean_between_layers",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
|
@ -7992,7 +7996,7 @@
|
|||
{
|
||||
"label": "Wipe Retraction Extra Prime Amount",
|
||||
"description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.",
|
||||
"unit": "mm³",
|
||||
"unit": "mm\u00b3",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"value": "retraction_extra_prime_amount",
|
||||
|
|
161
resources/definitions/fusion3.def.json
Normal file
161
resources/definitions/fusion3.def.json
Normal 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"
|
||||
}
|
||||
}
|
138
resources/definitions/fusion3_f410.def.json
Normal file
138
resources/definitions/fusion3_f410.def.json
Normal 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'" }
|
||||
}
|
||||
}
|
|
@ -2,13 +2,18 @@
|
|||
"version": 2,
|
||||
"name": "Ultimaker",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"metadata":
|
||||
{
|
||||
"visible": false,
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Ultimaker B.V.",
|
||||
"visible": false,
|
||||
"exclude_materials": [ "generic_hips", "structur3d_dap100silicone" ]
|
||||
"exclude_materials": [
|
||||
"generic_hips",
|
||||
"structur3d_dap100silicone"
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"overrides":
|
||||
{
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_travel_enabled": { "value": false },
|
||||
"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_speed": { "value": "bridge_skin_speed" },
|
||||
"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_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" },
|
||||
"inset_direction": { "value": "'outside_in'" },
|
||||
"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_print":
|
||||
{
|
||||
"value": "20",
|
||||
"minimum_value_warning": 20
|
||||
"minimum_value_warning": 20,
|
||||
"value": "20"
|
||||
},
|
||||
"jerk_print_layer_0": { "value": "max(20, jerk_wall_0)" },
|
||||
"jerk_roofing": { "minimum_value_warning": 20 },
|
||||
|
@ -53,20 +56,22 @@
|
|||
"jerk_topbottom": { "minimum_value_warning": 20 },
|
||||
"jerk_travel": { "value": "jerk_print" },
|
||||
"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)" },
|
||||
"line_width": { "value": "machine_nozzle_size" },
|
||||
"machine_max_feedrate_e": { "default_value": 45 },
|
||||
"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_print_temperature": { "minimum_value": "0" },
|
||||
"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_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },
|
||||
|
@ -82,10 +87,11 @@
|
|||
"raft_surface_speed": { "value": "speed_topbottom" },
|
||||
"relative_extrusion":
|
||||
{
|
||||
"value": false,
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"value": false
|
||||
},
|
||||
"retraction_combing": { "value": "'no_outer_surfaces'" },
|
||||
"retraction_combing_max_distance": { "value": 15 },
|
||||
"retraction_count_max": { "value": 25 },
|
||||
"retraction_extrusion_window": { "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_material_flow": { "value": "0.95 * material_flow" },
|
||||
"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_layer_0": { "value": "min(30, layer_height / layer_height_0 * speed_wall_0)" },
|
||||
"speed_slowdown_layers": { "value": 1 },
|
||||
|
@ -104,7 +110,7 @@
|
|||
"support_interface_height": { "value": "2 * layer_height" },
|
||||
"support_interface_material_flow": { "value": "skin_material_flow" },
|
||||
"support_interface_offset": { "value": "support_offset" },
|
||||
"support_interface_pattern": { "value": "'concentric'" },
|
||||
"support_interface_pattern": { "value": "'zigzag'" },
|
||||
"support_interface_skip_height": { "value": "layer_height" },
|
||||
"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" },
|
||||
|
|
15
resources/extruders/ankermake_m5_extruder_0.def.json
Normal file
15
resources/extruders/ankermake_m5_extruder_0.def.json
Normal 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 }
|
||||
}
|
||||
}
|
15
resources/extruders/dagoma_pro_430_bowden_extruder.def.json
Normal file
15
resources/extruders/dagoma_pro_430_bowden_extruder.def.json
Normal 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 }
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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 }
|
||||
}
|
||||
}
|
|
@ -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 }
|
||||
}
|
||||
}
|
|
@ -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 }
|
||||
}
|
||||
}
|
16
resources/extruders/dagoma_sigma_extruder.def.json
Normal file
16
resources/extruders/dagoma_sigma_extruder.def.json
Normal 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 }
|
||||
}
|
||||
}
|
15
resources/extruders/fusion3_extruder_0.def.json
Normal file
15
resources/extruders/fusion3_extruder_0.def.json
Normal 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 }
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
# Cura
|
||||
# Copyright (C) 2022 Ultimaker B.V.
|
||||
# Copyright (C) 2022 UltiMaker.
|
||||
# This file is distributed under the same license as the Cura package.
|
||||
# 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
|
||||
msgctxt "@info"
|
||||
msgid "Unable to reach the Ultimaker account server."
|
||||
msgstr "Nelze se dostat na server účtu Ultimaker."
|
||||
msgid "Unable to reach the UltiMaker account server."
|
||||
msgstr "Nelze se dostat na server účtu UltiMaker."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
|
||||
msgctxt "@info:title"
|
||||
|
@ -701,8 +701,8 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122
|
||||
msgctxt "@action:button"
|
||||
msgid "Send crash report to Ultimaker"
|
||||
msgstr "Poslat záznam o pádu do Ultimakeru"
|
||||
msgid "Send crash report to UltiMaker"
|
||||
msgstr "Poslat záznam o pádu do UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125
|
||||
msgctxt "@action:button"
|
||||
|
@ -902,7 +902,7 @@ msgstr "Chyba sítě"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13
|
||||
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"
|
||||
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"
|
||||
|
@ -1056,8 +1056,8 @@ msgstr "Odstranit tiskárnu"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21
|
||||
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/UFPReader/__init__.py:22
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Ultimaker Format Package"
|
||||
msgstr "Balíček ve formátu Ultimaker"
|
||||
msgid "UltiMaker Format Package"
|
||||
msgstr "Balíček ve formátu UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19
|
||||
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/DownloadPresenter.py:95
|
||||
msgctxt "@info:title"
|
||||
msgid "Changes detected from your Ultimaker account"
|
||||
msgstr "Zjištěny změny z vašeho účtu Ultimaker"
|
||||
msgid "Changes detected from your UltiMaker account"
|
||||
msgstr "Zjištěny změny z vašeho účtu UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147
|
||||
msgctxt "@action:button"
|
||||
|
@ -1572,8 +1572,8 @@ msgstr "Nahlásit chybu"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169
|
||||
msgctxt "@message:description"
|
||||
msgid "Report a bug on Ultimaker Cura's issue tracker."
|
||||
msgstr "Nahlásit chybu v Ultimaker Cura issue trackeru."
|
||||
msgid "Report a bug on UltiMaker Cura's issue tracker."
|
||||
msgstr "Nahlásit chybu v UltiMaker Cura issue trackeru."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401
|
||||
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
|
||||
#, python-brace-format
|
||||
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."
|
||||
msgstr "Soubor projektu <filename>{0}</filename> je vytvořený profily, které jsou této verzi Ultimaker Cura neznámé."
|
||||
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é."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14
|
||||
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
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347
|
||||
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
|
||||
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:"
|
||||
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:"
|
||||
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:"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107
|
||||
msgctxt "@text:window"
|
||||
|
@ -2739,8 +2739,8 @@ msgstr "Uložit projekt Cura"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
|
||||
msgctxt "@label"
|
||||
msgid "Please select any upgrades made to this Ultimaker Original"
|
||||
msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu Ultimaker"
|
||||
msgid "Please select any upgrades made to this UltiMaker Original"
|
||||
msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39
|
||||
msgctxt "@label"
|
||||
|
@ -2835,8 +2835,8 @@ msgstr "Nainstalovat moduly"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12
|
||||
msgctxt "@text"
|
||||
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ů."
|
||||
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ů."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15
|
||||
msgctxt "@title"
|
||||
|
@ -2894,8 +2894,8 @@ msgstr "Instalovat materiály"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12
|
||||
msgctxt "@text"
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32
|
||||
msgctxt "@info:tooltip"
|
||||
|
@ -3016,18 +3016,18 @@ msgstr "Načíst více"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Plug-in"
|
||||
msgstr "Modul ověřený společností Ultimaker"
|
||||
msgid "UltiMaker Verified Plug-in"
|
||||
msgstr "Modul ověřený společností UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Certified Material"
|
||||
msgstr "Materiál certifikovaný společností Ultimaker"
|
||||
msgid "UltiMaker Certified Material"
|
||||
msgstr "Materiál certifikovaný společností UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Package"
|
||||
msgstr "Balíček ověřený společností Ultimaker"
|
||||
msgid "UltiMaker Verified Package"
|
||||
msgstr "Balíček ověřený společností UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11
|
||||
msgctxt "@header"
|
||||
|
@ -3036,8 +3036,8 @@ msgstr "Spravovat balíčky"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15
|
||||
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."
|
||||
msgstr "Zde můžete spravovat své Ultimaker Cura moduly a materiály. Udržujte své moduly aktuální a pravidelně zálohujte své nastavení."
|
||||
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í."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15
|
||||
msgctxt "@title"
|
||||
|
@ -4308,8 +4308,8 @@ msgstr "Soukromí"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
|
||||
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."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867
|
||||
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/Account/GeneralOperations.qml:19
|
||||
msgctxt "@label"
|
||||
msgid "Sign in to the Ultimaker platform"
|
||||
msgstr "Přihlásit se do platformy Ultimaker"
|
||||
msgid "Sign in to the UltiMaker platform"
|
||||
msgstr "Přihlásit se do platformy UltiMaker"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123
|
||||
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
|
||||
msgctxt "@text"
|
||||
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ě"
|
||||
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ě"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189
|
||||
msgctxt "@button"
|
||||
|
@ -4648,18 +4648,18 @@ msgstr "Přeskočit"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201
|
||||
msgctxt "@text"
|
||||
msgid "Create a free Ultimaker Account"
|
||||
msgstr "Vytvořit účet Ultimaker zdarma"
|
||||
msgid "Create a free UltiMaker Account"
|
||||
msgstr "Vytvořit účet UltiMaker zdarma"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
|
||||
msgctxt "@label"
|
||||
msgid "Help us to improve Ultimaker Cura"
|
||||
msgstr "Pomožte nám zlepšovat Ultimaker Cura"
|
||||
msgid "Help us to improve UltiMaker Cura"
|
||||
msgstr "Pomožte nám zlepšovat UltiMaker Cura"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
|
||||
msgctxt "@text"
|
||||
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ě:"
|
||||
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ě:"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68
|
||||
msgctxt "@text"
|
||||
|
@ -4683,8 +4683,8 @@ msgstr "Nastavení tisku"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
|
||||
msgctxt "@text"
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100
|
||||
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:201
|
||||
msgctxt "@label"
|
||||
msgid "Can't connect to your Ultimaker printer?"
|
||||
msgstr "Nemůžete se připojit k Vaší tiskárně Ultimaker?"
|
||||
msgid "Can't connect to your UltiMaker printer?"
|
||||
msgstr "Nemůžete se připojit k Vaší tiskárně UltiMaker?"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200
|
||||
msgctxt "@label"
|
||||
|
@ -4774,13 +4774,13 @@ msgstr "Připojit"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56
|
||||
msgctxt "@label"
|
||||
msgid "Welcome to Ultimaker Cura"
|
||||
msgstr "Vítejte v Ultimaker Cura"
|
||||
msgid "Welcome to UltiMaker Cura"
|
||||
msgstr "Vítejte v UltiMaker Cura"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
|
||||
msgctxt "@text"
|
||||
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ů."
|
||||
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ů."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82
|
||||
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
|
||||
msgctxt "@info:credit"
|
||||
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:"
|
||||
msgstr ""
|
||||
"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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||
msgstr "Rozšiřte Ultimaker Cura pomocí modulů a materiálových profilů."
|
||||
msgid "Extend UltiMaker Cura with plugins and material profiles."
|
||||
msgstr "Rozšiřte UltiMaker Cura pomocí modulů a materiálových profilů."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||
msgstr "Staňte se expertem na 3D tisk díky Ultimaker e-learningu."
|
||||
msgid "Become a 3D printing expert with UltiMaker e-learning."
|
||||
msgstr "Staňte se expertem na 3D tisk díky UltiMaker e-learningu."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||
msgctxt "@label:button"
|
||||
msgid "Ultimaker support"
|
||||
msgstr "Ultimaker podpora"
|
||||
msgid "UltiMaker support"
|
||||
msgstr "UltiMaker podpora"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Learn how to get started with Ultimaker Cura."
|
||||
msgstr "Zjistěte, jak začít s Ultimaker Cura."
|
||||
msgid "Learn how to get started with UltiMaker Cura."
|
||||
msgstr "Zjistěte, jak začít s UltiMaker Cura."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||
msgctxt "@label:button"
|
||||
|
@ -5699,8 +5699,8 @@ msgstr "Položit otázku"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Consult the Ultimaker Community."
|
||||
msgstr "Poraďte se s Ultimaker komunitou."
|
||||
msgid "Consult the UltiMaker Community."
|
||||
msgstr "Poraďte se s UltiMaker komunitou."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||
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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Visit the Ultimaker website."
|
||||
msgstr "Navštivte web Ultimaker."
|
||||
msgid "Visit the UltiMaker website."
|
||||
msgstr "Navštivte web UltiMaker."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
|
||||
msgctxt "@label"
|
||||
|
@ -6011,8 +6011,8 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58
|
||||
msgctxt "@button"
|
||||
msgid "Create a free Ultimaker account"
|
||||
msgstr "Vytvořit účet Ultimaker zdarma"
|
||||
msgid "Create a free UltiMaker account"
|
||||
msgstr "Vytvořit účet UltiMaker zdarma"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24
|
||||
msgctxt "@action:button"
|
||||
|
@ -6026,8 +6026,8 @@ msgstr "Poslední aktualizace: %1"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107
|
||||
msgctxt "@button"
|
||||
msgid "Ultimaker Account"
|
||||
msgstr "Ultimaker Account"
|
||||
msgid "UltiMaker Account"
|
||||
msgstr "UltiMaker Account"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126
|
||||
msgctxt "@button"
|
||||
|
@ -6241,13 +6241,13 @@ msgstr "Post Processing"
|
|||
|
||||
#: /UM3NetworkPrinting/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Manages network connections to Ultimaker networked printers."
|
||||
msgstr "Spravuje síťová připojení k síťovým tiskárnám Ultimaker."
|
||||
msgid "Manages network connections to UltiMaker networked printers."
|
||||
msgstr "Spravuje síťová připojení k síťovým tiskárnám UltiMaker."
|
||||
|
||||
#: /UM3NetworkPrinting/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker Network Connection"
|
||||
msgstr "Síťové připojení Ultimaker"
|
||||
msgid "UltiMaker Network Connection"
|
||||
msgstr "Síťové připojení UltiMaker"
|
||||
|
||||
#: /3MFWriter/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6281,8 +6281,8 @@ msgstr "Informace o slicování"
|
|||
|
||||
#: /UFPWriter/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for writing Ultimaker Format Packages."
|
||||
msgstr "Poskytuje podporu pro psaní balíčků formátu Ultimaker."
|
||||
msgid "Provides support for writing UltiMaker Format Packages."
|
||||
msgstr "Poskytuje podporu pro psaní balíčků formátu UltiMaker."
|
||||
|
||||
#: /UFPWriter/plugin.json
|
||||
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
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker Digital Library"
|
||||
msgstr "Digitální knihovna Ultimaker"
|
||||
msgstr "Digitální knihovna UltiMaker"
|
||||
|
||||
#: /GCodeProfileReader/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6331,13 +6331,13 @@ msgstr "Čtečka trimesh"
|
|||
|
||||
#: /UltimakerMachineActions/plugin.json
|
||||
msgctxt "description"
|
||||
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.)."
|
||||
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.)."
|
||||
|
||||
#: /UltimakerMachineActions/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker machine actions"
|
||||
msgstr "Akce zařízení Ultimaker"
|
||||
msgid "UltiMaker machine actions"
|
||||
msgstr "Akce zařízení UltiMaker"
|
||||
|
||||
#: /GCodeGzReader/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6351,8 +6351,8 @@ msgstr "Čtečka kompresovaného G kódu"
|
|||
|
||||
#: /Marketplace/plugin.json
|
||||
msgctxt "description"
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /Marketplace/plugin.json
|
||||
msgctxt "name"
|
||||
|
@ -6701,8 +6701,8 @@ msgstr "Zapisovač G kódu"
|
|||
|
||||
#: /UFPReader/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for reading Ultimaker Format Packages."
|
||||
msgstr "Poskytuje podporu pro čtení balíčků formátu Ultimaker."
|
||||
msgid "Provides support for reading UltiMaker Format Packages."
|
||||
msgstr "Poskytuje podporu pro čtení balíčků formátu UltiMaker."
|
||||
|
||||
#: /UFPReader/plugin.json
|
||||
msgctxt "name"
|
||||
|
@ -7018,8 +7018,8 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Email"
|
||||
|
||||
#~ msgctxt "@description"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
|
||||
#~ msgctxt "@label"
|
||||
#~ msgid "Version"
|
||||
|
@ -7176,16 +7176,16 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Poskytuje zobrazení simulace."
|
||||
|
||||
#~ msgctxt "@info:status"
|
||||
#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account."
|
||||
#~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu Ultimaker."
|
||||
#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account."
|
||||
#~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu UltiMaker."
|
||||
|
||||
#~ msgctxt "@info:status Ultimaker Cloud should not be translated."
|
||||
#~ msgid "Connect to Ultimaker Digital Factory"
|
||||
#~ msgstr "Připojit se k Ultimaker Digital Factory"
|
||||
|
||||
#~ msgctxt "@info"
|
||||
#~ 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."
|
||||
#~ 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."
|
||||
|
||||
#~ 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}."
|
||||
|
@ -7255,8 +7255,8 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Dokončit"
|
||||
|
||||
#~ msgctxt "@label"
|
||||
#~ msgid "Ultimaker Account"
|
||||
#~ msgstr "Účet Ultimaker"
|
||||
#~ msgid "UltiMaker Account"
|
||||
#~ msgstr "Účet UltiMaker"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ 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"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ msgid ""
|
||||
|
@ -7283,8 +7283,8 @@ msgstr "Fáze přípravy"
|
|||
#~ "Ultimaker Cura. Bude to trvat jen několik okamžiků."
|
||||
|
||||
#~ msgctxt "@label"
|
||||
#~ msgid "What's new in Ultimaker Cura"
|
||||
#~ msgstr "Co je nového v Ultimaker Cura"
|
||||
#~ msgid "What's new in UltiMaker Cura"
|
||||
#~ msgstr "Co je nového v UltiMaker Cura"
|
||||
|
||||
#~ msgctxt "@label ({} is object name)"
|
||||
#~ msgid "Are you sure you wish to remove {}? This cannot be undone!"
|
||||
|
@ -7316,11 +7316,11 @@ msgstr "Fáze přípravy"
|
|||
|
||||
#~ msgctxt "info:status"
|
||||
#~ 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)"
|
||||
#~ 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"
|
||||
#~ msgid ""
|
||||
|
@ -7396,8 +7396,8 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Připojeno přes Cloud"
|
||||
|
||||
#~ msgctxt "@info:status Ultimaker Cloud should not be translated."
|
||||
#~ msgid "Connect to Ultimaker Cloud"
|
||||
#~ msgstr "Připojit k Ultimaker Cloudu"
|
||||
#~ msgid "Connect to UltiMaker Cloud"
|
||||
#~ msgstr "Připojit k UltiMaker Cloudu"
|
||||
|
||||
#~ msgctxt "@label"
|
||||
#~ msgid "You need to login first before you can rate"
|
||||
|
@ -7424,16 +7424,16 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Autor"
|
||||
|
||||
#~ msgctxt "@description"
|
||||
#~ msgid "Get plugins and materials verified by Ultimaker"
|
||||
#~ msgstr "Získejte pluginy a materiály ověřené společností Ultimaker"
|
||||
#~ msgid "Get plugins and materials verified by UltiMaker"
|
||||
#~ msgstr "Získejte pluginy a materiály ověřené společností UltiMaker"
|
||||
|
||||
#~ msgctxt "@label The argument is a username."
|
||||
#~ msgid "Hi %1"
|
||||
#~ msgstr "Zdravím, %1"
|
||||
|
||||
#~ msgctxt "@button"
|
||||
#~ msgid "Ultimaker account"
|
||||
#~ msgstr "Ultimaker účet"
|
||||
#~ msgid "UltiMaker account"
|
||||
#~ msgstr "UltiMaker účet"
|
||||
|
||||
#~ msgctxt "@button"
|
||||
#~ msgid "Sign out"
|
||||
|
@ -7512,20 +7512,20 @@ msgstr "Fáze přípravy"
|
|||
#~ msgstr "Jazyk:"
|
||||
|
||||
#~ msgctxt "@label"
|
||||
#~ msgid "Ultimaker Cloud"
|
||||
#~ msgstr "Ultimaker Cloud"
|
||||
#~ msgid "UltiMaker Cloud"
|
||||
#~ msgstr "UltiMaker Cloud"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ msgid "The next generation 3D printing workflow"
|
||||
#~ msgstr "Pracovní postup 3D tisku nové generace"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ 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íť"
|
||||
#~ 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íť"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
|
||||
#~ msgctxt "@text"
|
||||
#~ msgid "- Get exclusive access to print profiles from leading brands"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# Cura
|
||||
# Copyright (C) 2022 UltiMaker.
|
||||
# This file is distributed under the same license as the Cura package.
|
||||
# Ultimaker <plugins@ultimaker.com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
|
@ -442,7 +442,7 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277
|
||||
msgctxt "@info"
|
||||
msgid "Unable to reach the Ultimaker account server."
|
||||
msgid "Unable to reach the UltiMaker account server."
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
|
||||
|
@ -718,7 +718,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113
|
||||
msgctxt "@label crash message"
|
||||
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>We encountered an unrecoverable error during start "
|
||||
"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
|
||||
msgctxt "@action:button"
|
||||
msgid "Send crash report to Ultimaker"
|
||||
msgid "Send crash report to UltiMaker"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "info:status"
|
||||
msgid "New printer detected from your Ultimaker account"
|
||||
msgid_plural "New printers detected from your Ultimaker account"
|
||||
msgid "New printer detected from your UltiMaker account"
|
||||
msgid_plural "New printers detected from your UltiMaker account"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||
msgctxt "@info:status"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -1317,7 +1317,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Ultimaker Format Package"
|
||||
msgid "UltiMaker Format Package"
|
||||
msgstr ""
|
||||
|
||||
#: /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/DownloadPresenter.py:95
|
||||
msgctxt "@info:title"
|
||||
msgid "Changes detected from your Ultimaker account"
|
||||
msgid "Changes detected from your UltiMaker account"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@message:description"
|
||||
msgid "Report a bug on Ultimaker Cura's issue tracker."
|
||||
msgid "Report a bug on UltiMaker Cura's issue tracker."
|
||||
msgstr ""
|
||||
|
||||
#: /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>!"
|
||||
msgid ""
|
||||
"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 ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@info"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -2799,7 +2799,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73
|
||||
msgctxt "@text:window"
|
||||
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:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2825,7 +2825,7 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
|
||||
msgctxt "@label"
|
||||
msgid "Please select any upgrades made to this Ultimaker Original"
|
||||
msgid "Please select any upgrades made to this UltiMaker Original"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@text"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -2991,7 +2991,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12
|
||||
msgctxt "@text"
|
||||
msgid ""
|
||||
"Select and install material profiles optimised for your Ultimaker 3D "
|
||||
"Select and install material profiles optimised for your UltiMaker 3D "
|
||||
"printers."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3114,17 +3114,17 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Plug-in"
|
||||
msgid "UltiMaker Verified Plug-in"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Certified Material"
|
||||
msgid "UltiMaker Certified Material"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Package"
|
||||
msgid "UltiMaker Verified Package"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@text"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -4455,7 +4455,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
|
||||
msgctxt "@info:tooltip"
|
||||
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 "
|
||||
"stored."
|
||||
msgstr ""
|
||||
|
@ -4775,7 +4775,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19
|
||||
msgctxt "@label"
|
||||
msgid "Sign in to the Ultimaker platform"
|
||||
msgid "Sign in to the UltiMaker platform"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
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 ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@text"
|
||||
msgid "Create a free Ultimaker Account"
|
||||
msgid "Create a free UltiMaker Account"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
|
||||
msgctxt "@label"
|
||||
msgid "Help us to improve Ultimaker Cura"
|
||||
msgid "Help us to improve UltiMaker Cura"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
|
||||
msgctxt "@text"
|
||||
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:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4838,7 +4838,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
|
||||
msgctxt "@text"
|
||||
msgid ""
|
||||
"Data collected by Ultimaker Cura will not contain any personal information."
|
||||
"Data collected by UltiMaker Cura will not contain any personal information."
|
||||
msgstr ""
|
||||
|
||||
#: /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:201
|
||||
msgctxt "@label"
|
||||
msgid "Can't connect to your Ultimaker printer?"
|
||||
msgid "Can't connect to your UltiMaker printer?"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@label"
|
||||
msgid "Welcome to Ultimaker Cura"
|
||||
msgid "Welcome to UltiMaker Cura"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
|
||||
msgctxt "@text"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -5033,7 +5033,7 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216
|
||||
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."
|
||||
msgid "Add more materials from Marketplace"
|
||||
msgstr ""
|
||||
|
@ -5635,7 +5635,7 @@ msgstr ""
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87
|
||||
msgctxt "@info:credit"
|
||||
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:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -5842,22 +5842,22 @@ msgstr ""
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||
msgid "Extend UltiMaker Cura with plugins and material profiles."
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||
msgid "Become a 3D printing expert with UltiMaker e-learning."
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||
msgctxt "@label:button"
|
||||
msgid "Ultimaker support"
|
||||
msgid "UltiMaker support"
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Learn how to get started with Ultimaker Cura."
|
||||
msgid "Learn how to get started with UltiMaker Cura."
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Consult the Ultimaker Community."
|
||||
msgid "Consult the UltiMaker Community."
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Visit the Ultimaker website."
|
||||
msgid "Visit the UltiMaker website."
|
||||
msgstr ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
|
||||
|
@ -6191,12 +6191,12 @@ msgctxt "@text"
|
|||
msgid ""
|
||||
"- Add material profiles and plug-ins from the Marketplace\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 ""
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58
|
||||
msgctxt "@button"
|
||||
msgid "Create a free Ultimaker account"
|
||||
msgid "Create a free UltiMaker account"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@button"
|
||||
msgid "Ultimaker Account"
|
||||
msgid "UltiMaker Account"
|
||||
msgstr ""
|
||||
|
||||
#: /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
|
||||
msgctxt "@status"
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
@ -6436,12 +6436,12 @@ msgstr ""
|
|||
|
||||
#: /UM3NetworkPrinting/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Manages network connections to Ultimaker networked printers."
|
||||
msgid "Manages network connections to UltiMaker networked printers."
|
||||
msgstr ""
|
||||
|
||||
#: /UM3NetworkPrinting/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker Network Connection"
|
||||
msgid "UltiMaker Network Connection"
|
||||
msgstr ""
|
||||
|
||||
#: /3MFWriter/plugin.json
|
||||
|
@ -6476,7 +6476,7 @@ msgstr ""
|
|||
|
||||
#: /UFPWriter/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for writing Ultimaker Format Packages."
|
||||
msgid "Provides support for writing UltiMaker Format Packages."
|
||||
msgstr ""
|
||||
|
||||
#: /UFPWriter/plugin.json
|
||||
|
@ -6529,13 +6529,13 @@ msgstr ""
|
|||
#: /UltimakerMachineActions/plugin.json
|
||||
msgctxt "description"
|
||||
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.)."
|
||||
msgstr ""
|
||||
|
||||
#: /UltimakerMachineActions/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker machine actions"
|
||||
msgid "UltiMaker machine actions"
|
||||
msgstr ""
|
||||
|
||||
#: /GCodeGzReader/plugin.json
|
||||
|
@ -6552,7 +6552,7 @@ msgstr ""
|
|||
msgctxt "description"
|
||||
msgid ""
|
||||
"Manages extensions to the application and allows browsing extensions from "
|
||||
"the Ultimaker website."
|
||||
"the UltiMaker website."
|
||||
msgstr ""
|
||||
|
||||
#: /Marketplace/plugin.json
|
||||
|
@ -6905,7 +6905,7 @@ msgstr ""
|
|||
|
||||
#: /UFPReader/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for reading Ultimaker Format Packages."
|
||||
msgid "Provides support for reading UltiMaker Format Packages."
|
||||
msgstr ""
|
||||
|
||||
#: /UFPReader/plugin.json
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# Cura
|
||||
# Copyright (C) 2022 UltiMaker.
|
||||
# This file is distributed under the same license as the Cura package.
|
||||
# Ultimaker <plugins@ultimaker.com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
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
|
||||
msgctxt "@info"
|
||||
msgid "Unable to reach the Ultimaker account server."
|
||||
msgstr "Der Ultimaker-Konto-Server konnte nicht erreicht werden."
|
||||
msgid "Unable to reach the UltiMaker account server."
|
||||
msgstr "Der UltiMaker-Konto-Server konnte nicht erreicht werden."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278
|
||||
msgctxt "@info:title"
|
||||
|
@ -721,7 +721,7 @@ msgstr "Cura kann nicht starten"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113
|
||||
msgctxt "@label crash message"
|
||||
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>We encountered an unrecoverable error during start "
|
||||
"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>\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 "
|
||||
" <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
|
||||
msgctxt "@action:button"
|
||||
msgid "Send crash report to Ultimaker"
|
||||
msgstr "Absturzbericht an Ultimaker senden"
|
||||
msgid "Send crash report to UltiMaker"
|
||||
msgstr "Absturzbericht an UltiMaker senden"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125
|
||||
msgctxt "@action:button"
|
||||
|
@ -939,10 +939,10 @@ msgstr "Netzwerkfehler"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13
|
||||
msgctxt "info:status"
|
||||
msgid "New printer 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[1] "Ihr Ultimaker-Konto hat neue Drucker erkannt"
|
||||
msgid "New printer 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[1] "Ihr UltiMaker-Konto hat neue Drucker erkannt"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29
|
||||
#, python-brace-format
|
||||
|
@ -1096,9 +1096,9 @@ msgstr "Drucker entfernen"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||
msgctxt "@info:status"
|
||||
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."
|
||||
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
|
||||
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/UFPReader/__init__.py:22
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Ultimaker Format Package"
|
||||
msgstr "Ultimaker Format Package"
|
||||
msgid "UltiMaker Format Package"
|
||||
msgstr "UltiMaker Format Package"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19
|
||||
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/DownloadPresenter.py:95
|
||||
msgctxt "@info:title"
|
||||
msgid "Changes detected from your Ultimaker account"
|
||||
msgstr "Von Ihrem Ultimaker-Konto erkannte Änderungen"
|
||||
msgid "Changes detected from your UltiMaker account"
|
||||
msgstr "Von Ihrem UltiMaker-Konto erkannte Änderungen"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147
|
||||
msgctxt "@action:button"
|
||||
|
@ -1614,8 +1614,8 @@ msgstr "Einen Fehler melden"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169
|
||||
msgctxt "@message:description"
|
||||
msgid "Report a bug on Ultimaker Cura's issue tracker."
|
||||
msgstr "Einen Fehler im Issue Tracker von Ultimaker Cura melden."
|
||||
msgid "Report a bug on UltiMaker Cura's issue tracker."
|
||||
msgstr "Einen Fehler im Issue Tracker von UltiMaker Cura melden."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401
|
||||
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>!"
|
||||
msgid ""
|
||||
"Project file <filename>{0}</filename> is made using profiles that are "
|
||||
"unknown to this version of Ultimaker Cura."
|
||||
msgstr "Projektdatei <filename>{0}</filename> verwendet Profile, die nicht mit dieser Ultimaker Cura-Version kompatibel sind."
|
||||
"unknown to this version of UltiMaker Cura."
|
||||
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
|
||||
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
|
||||
msgctxt "@info"
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /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
|
||||
msgctxt "@text:window"
|
||||
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:"
|
||||
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
|
||||
msgctxt "@text:window"
|
||||
|
@ -2845,8 +2845,8 @@ msgstr "Cura-Projekt speichern"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30
|
||||
msgctxt "@label"
|
||||
msgid "Please select any upgrades made to this Ultimaker Original"
|
||||
msgstr "Wählen Sie bitte alle Upgrades für dieses Ultimaker-Original"
|
||||
msgid "Please select any upgrades made to this UltiMaker Original"
|
||||
msgstr "Wählen Sie bitte alle Upgrades für dieses UltiMaker-Original"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39
|
||||
msgctxt "@label"
|
||||
|
@ -2950,9 +2950,9 @@ msgstr "Plug-ins installieren"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12
|
||||
msgctxt "@text"
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /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
|
||||
msgctxt "@text"
|
||||
msgid ""
|
||||
"Select and install material profiles optimised for your Ultimaker 3D "
|
||||
"Select and install material profiles optimised for your UltiMaker 3D "
|
||||
"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
|
||||
msgctxt "@info:tooltip"
|
||||
|
@ -3137,18 +3137,18 @@ msgstr "Weitere laden"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Plug-in"
|
||||
msgstr "Durch Ultimaker verifiziertes Plug-in"
|
||||
msgid "UltiMaker Verified Plug-in"
|
||||
msgstr "Durch UltiMaker verifiziertes Plug-in"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Certified Material"
|
||||
msgstr "Durch Ultimaker zertifiziertes Material"
|
||||
msgid "UltiMaker Certified Material"
|
||||
msgstr "Durch UltiMaker zertifiziertes Material"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23
|
||||
msgctxt "@info"
|
||||
msgid "Ultimaker Verified Package"
|
||||
msgstr "Durch Ultimaker verifiziertes Paket"
|
||||
msgid "UltiMaker Verified Package"
|
||||
msgstr "Durch UltiMaker verifiziertes Paket"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11
|
||||
msgctxt "@header"
|
||||
|
@ -3158,9 +3158,9 @@ msgstr "Pakete verwalten"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15
|
||||
msgctxt "@text"
|
||||
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."
|
||||
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
|
||||
msgctxt "@title"
|
||||
|
@ -4484,10 +4484,10 @@ msgstr "Privatsphäre"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862
|
||||
msgctxt "@info:tooltip"
|
||||
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 "
|
||||
"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."
|
||||
|
||||
#: /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/Account/GeneralOperations.qml:19
|
||||
msgctxt "@label"
|
||||
msgid "Sign in to the Ultimaker platform"
|
||||
msgstr "Bei der Ultimaker-Plattform anmelden"
|
||||
msgid "Sign in to the UltiMaker platform"
|
||||
msgstr "Bei der UltiMaker-Plattform anmelden"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123
|
||||
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
|
||||
msgctxt "@text"
|
||||
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"
|
||||
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"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189
|
||||
msgctxt "@button"
|
||||
|
@ -4831,20 +4831,20 @@ msgstr "Überspringen"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201
|
||||
msgctxt "@text"
|
||||
msgid "Create a free Ultimaker Account"
|
||||
msgstr "Kostenloses Ultimaker-Konto erstellen"
|
||||
msgid "Create a free UltiMaker Account"
|
||||
msgstr "Kostenloses UltiMaker-Konto erstellen"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24
|
||||
msgctxt "@label"
|
||||
msgid "Help us to improve Ultimaker Cura"
|
||||
msgstr "Helfen Sie uns, Ultimaker Cura zu verbessern"
|
||||
msgid "Help us to improve UltiMaker Cura"
|
||||
msgstr "Helfen Sie uns, UltiMaker Cura zu verbessern"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56
|
||||
msgctxt "@text"
|
||||
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:"
|
||||
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
|
||||
msgctxt "@text"
|
||||
|
@ -4869,8 +4869,8 @@ msgstr "Druckeinstellungen"
|
|||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99
|
||||
msgctxt "@text"
|
||||
msgid ""
|
||||
"Data collected by Ultimaker Cura will not contain any personal information."
|
||||
msgstr "Die von Ultimaker Cura erfassten Daten enthalten keine personenbezogenen Daten."
|
||||
"Data collected by UltiMaker Cura will not contain any personal information."
|
||||
msgstr "Die von UltiMaker Cura erfassten Daten enthalten keine personenbezogenen Daten."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100
|
||||
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:201
|
||||
msgctxt "@label"
|
||||
msgid "Can't connect to your Ultimaker printer?"
|
||||
msgstr "Sie können keine Verbindung zu Ihrem Ultimaker-Drucker herstellen?"
|
||||
msgid "Can't connect to your UltiMaker printer?"
|
||||
msgstr "Sie können keine Verbindung zu Ihrem UltiMaker-Drucker herstellen?"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200
|
||||
msgctxt "@label"
|
||||
|
@ -4962,15 +4962,15 @@ msgstr "Verbinden"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56
|
||||
msgctxt "@label"
|
||||
msgid "Welcome to Ultimaker Cura"
|
||||
msgstr "Willkommen bei Ultimaker Cura"
|
||||
msgid "Welcome to UltiMaker Cura"
|
||||
msgstr "Willkommen bei UltiMaker Cura"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67
|
||||
msgctxt "@text"
|
||||
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."
|
||||
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
|
||||
msgctxt "@button"
|
||||
|
@ -5064,7 +5064,7 @@ msgstr "Materialien werden verwaltet..."
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216
|
||||
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."
|
||||
msgid "Add more materials from Marketplace"
|
||||
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
|
||||
msgctxt "@info:credit"
|
||||
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:"
|
||||
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
|
||||
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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||
msgstr "Erweitern Sie Ultimaker Cura durch Plugins und Materialprofile."
|
||||
msgid "Extend UltiMaker Cura with plugins and material profiles."
|
||||
msgstr "Erweitern Sie UltiMaker Cura durch Plugins und Materialprofile."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||
msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von Ultimaker."
|
||||
msgid "Become a 3D printing expert with UltiMaker e-learning."
|
||||
msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von UltiMaker."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||
msgctxt "@label:button"
|
||||
msgid "Ultimaker support"
|
||||
msgstr "Ultimaker Kundendienst"
|
||||
msgid "UltiMaker support"
|
||||
msgstr "UltiMaker Kundendienst"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Learn how to get started with Ultimaker Cura."
|
||||
msgstr "Erfahren Sie, wie Sie mit Ultimaker Cura Ihre Arbeit beginnen können."
|
||||
msgid "Learn how to get started with UltiMaker Cura."
|
||||
msgstr "Erfahren Sie, wie Sie mit UltiMaker Cura Ihre Arbeit beginnen können."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||
msgctxt "@label:button"
|
||||
|
@ -5900,8 +5900,8 @@ msgstr "Eine Frage stellen"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Consult the Ultimaker Community."
|
||||
msgstr "Wenden Sie sich an die Ultimaker Community."
|
||||
msgid "Consult the UltiMaker Community."
|
||||
msgstr "Wenden Sie sich an die UltiMaker Community."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||
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
|
||||
msgctxt "@tooltip:button"
|
||||
msgid "Visit the Ultimaker website."
|
||||
msgstr "Besuchen Sie die Ultimaker-Website."
|
||||
msgid "Visit the UltiMaker website."
|
||||
msgstr "Besuchen Sie die UltiMaker-Website."
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40
|
||||
msgctxt "@label"
|
||||
|
@ -6229,14 +6229,14 @@ msgctxt "@text"
|
|||
msgid ""
|
||||
"- Add material profiles and plug-ins from the Marketplace\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"
|
||||
" 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
|
||||
msgctxt "@button"
|
||||
msgid "Create a free Ultimaker account"
|
||||
msgstr "Kostenloses Ultimaker-Konto erstellen"
|
||||
msgid "Create a free UltiMaker account"
|
||||
msgstr "Kostenloses UltiMaker-Konto erstellen"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24
|
||||
msgctxt "@action:button"
|
||||
|
@ -6250,8 +6250,8 @@ msgstr "Letztes Update: %1"
|
|||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107
|
||||
msgctxt "@button"
|
||||
msgid "Ultimaker Account"
|
||||
msgstr "Ultimaker‑Konto"
|
||||
msgid "UltiMaker Account"
|
||||
msgstr "UltiMaker‑Konto"
|
||||
|
||||
#: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126
|
||||
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
|
||||
msgctxt "@status"
|
||||
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."
|
||||
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
|
||||
msgctxt "description"
|
||||
msgid "Manages network connections to Ultimaker networked printers."
|
||||
msgstr "Verwaltet Netzwerkverbindungen zu Ultimaker-Netzwerkdruckern."
|
||||
msgid "Manages network connections to UltiMaker networked printers."
|
||||
msgstr "Verwaltet Netzwerkverbindungen zu UltiMaker-Netzwerkdruckern."
|
||||
|
||||
#: /UM3NetworkPrinting/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker Network Connection"
|
||||
msgstr "Ultimaker-Netzwerkverbindung"
|
||||
msgid "UltiMaker Network Connection"
|
||||
msgstr "UltiMaker-Netzwerkverbindung"
|
||||
|
||||
#: /3MFWriter/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6515,8 +6515,8 @@ msgstr "Slice-Informationen"
|
|||
|
||||
#: /UFPWriter/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for writing Ultimaker Format Packages."
|
||||
msgstr "Bietet Unterstützung für das Schreiben von Ultimaker Format Packages."
|
||||
msgid "Provides support for writing UltiMaker Format Packages."
|
||||
msgstr "Bietet Unterstützung für das Schreiben von UltiMaker Format Packages."
|
||||
|
||||
#: /UFPWriter/plugin.json
|
||||
msgctxt "name"
|
||||
|
@ -6533,7 +6533,7 @@ msgstr "Stellt eine Verbindung zur Digitalen Bibliothek her und ermöglicht es C
|
|||
#: /DigitalLibrary/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker Digital Library"
|
||||
msgstr "Digitale Bibliothek von Ultimaker"
|
||||
msgstr "Digitale Bibliothek von UltiMaker"
|
||||
|
||||
#: /GCodeProfileReader/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6568,14 +6568,14 @@ msgstr "Trimesh Reader"
|
|||
#: /UltimakerMachineActions/plugin.json
|
||||
msgctxt "description"
|
||||
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.)."
|
||||
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
|
||||
msgctxt "name"
|
||||
msgid "Ultimaker machine actions"
|
||||
msgstr "Ultimaker-Maschinenabläufe"
|
||||
msgid "UltiMaker machine actions"
|
||||
msgstr "UltiMaker-Maschinenabläufe"
|
||||
|
||||
#: /GCodeGzReader/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -6591,8 +6591,8 @@ msgstr "Reader für komprimierten G-Code"
|
|||
msgctxt "description"
|
||||
msgid ""
|
||||
"Manages extensions to the application and allows browsing extensions from "
|
||||
"the Ultimaker website."
|
||||
msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der Ultimaker-Website."
|
||||
"the UltiMaker website."
|
||||
msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der UltiMaker-Website."
|
||||
|
||||
#: /Marketplace/plugin.json
|
||||
msgctxt "name"
|
||||
|
@ -6944,8 +6944,8 @@ msgstr "G-Code-Writer"
|
|||
|
||||
#: /UFPReader/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Provides support for reading Ultimaker Format Packages."
|
||||
msgstr "Bietet Unterstützung für das Lesen von Ultimaker Format Packages."
|
||||
msgid "Provides support for reading UltiMaker Format Packages."
|
||||
msgstr "Bietet Unterstützung für das Lesen von UltiMaker Format Packages."
|
||||
|
||||
#: /UFPReader/plugin.json
|
||||
msgctxt "name"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue