mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-05 21:13:58 -06:00
Merge branch 'main' into PP-324_Limit_bed_temperature_to_120C
This commit is contained in:
commit
b59db63a21
303 changed files with 79248 additions and 81503 deletions
44
.github/workflows/conan-package-create.yml
vendored
44
.github/workflows/conan-package-create.yml
vendored
|
@ -109,9 +109,13 @@ jobs:
|
|||
if: ${{ runner.os == 'Macos' }}
|
||||
run: brew install autoconf automake ninja
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
|
@ -141,48 +145,10 @@ jobs:
|
|||
if: ${{ inputs.conan_config_branch == '' }}
|
||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||
|
||||
- name: Create the lock file
|
||||
if: ${{ inputs.build_info }}
|
||||
run: |
|
||||
conan_build_info --v2 start ${{ inputs.project_name }} ${{ github.run_number }}000${{ inputs.build_id }}
|
||||
conan lock create --reference ${{ inputs.recipe_id_full }} --lockfile-out=conan.lock
|
||||
|
||||
- name: Create the Packages using lockfile
|
||||
if: ${{ inputs.build_info }}
|
||||
run: conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock --lockfile-out=conan.lock
|
||||
|
||||
- name: Create the Packages
|
||||
if: ${{ ! inputs.build_info }}
|
||||
run: conan install ${{ inputs.recipe_id_full }} --build=missing --update
|
||||
|
||||
- name: Create the build info
|
||||
if: ${{ inputs.build_info }}
|
||||
run: conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }}
|
||||
|
||||
- name: Upload the Package(s)
|
||||
if: always()
|
||||
run: conan upload "*" -r cura --all -c
|
||||
|
||||
- name: Upload the build info
|
||||
if: ${{ inputs.build_info }}
|
||||
run: |
|
||||
conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }}
|
||||
conan_build_info --v2 stop
|
||||
|
||||
- name: Upload the Package(s) community
|
||||
if: ${{ always() && inputs.conan_upload_community == true }}
|
||||
run: conan upload "*" -r cura-ce -c
|
||||
|
||||
- name: Upload the log and build artifacts
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: log-${{ inputs.runs_on }}-${{ runner.arch }}
|
||||
path: |
|
||||
buildinfo.json
|
||||
conan.lock
|
||||
conanbuildinfo.txt
|
||||
conaninfo.txt
|
||||
graph_info.json
|
||||
build/**
|
||||
retention-days: 1
|
||||
conan upload ${{ inputs.recipe_id_full }} -r cura --all -c
|
||||
|
|
202
.github/workflows/conan-package.yml
vendored
202
.github/workflows/conan-package.yml
vendored
|
@ -7,110 +7,128 @@ name: conan-package
|
|||
# It should run on pushes against main or CURA-* branches, but it will only create the binaries for main and release branches
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_binaries_windows:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Windows'
|
||||
create_binaries_linux:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Linux'
|
||||
create_binaries_macos:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Macos'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_binaries_windows:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Windows'
|
||||
create_binaries_linux:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Linux'
|
||||
create_binaries_macos:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Macos'
|
||||
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-conan-package.txt'
|
||||
- 'requirements*.txt'
|
||||
- 'conanfile.py'
|
||||
- 'conandata.yml'
|
||||
- 'GitVersion.yml'
|
||||
- '*.jinja'
|
||||
branches:
|
||||
- main
|
||||
- 'CURA-*'
|
||||
- '[1-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9]'
|
||||
tags:
|
||||
- '[1-9].[0-9].[0-9]*'
|
||||
- '[1-9].[0-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9].[0-9]*'
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-conan-package.txt'
|
||||
- 'requirements*.txt'
|
||||
- 'conanfile.py'
|
||||
- 'conandata.yml'
|
||||
- 'GitVersion.yml'
|
||||
- '*.jinja'
|
||||
branches:
|
||||
- main
|
||||
- 'CURA-*'
|
||||
- '[1-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9]'
|
||||
tags:
|
||||
- '[1-9].[0-9].[0-9]*'
|
||||
- '[1-9].[0-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9].[0-9]*'
|
||||
|
||||
env:
|
||||
CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }}
|
||||
CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }}
|
||||
CONAN_LOGIN_USERNAME_CURA_CE: ${{ secrets.CONAN_USER }}
|
||||
CONAN_PASSWORD_CURA_CE: ${{ secrets.CONAN_PASS }}
|
||||
CONAN_LOG_RUN_TO_OUTPUT: 1
|
||||
CONAN_LOGGING_LEVEL: ${{ inputs.conan_logging_level }}
|
||||
CONAN_NON_INTERACTIVE: 1
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
conan-recipe-version:
|
||||
permissions:
|
||||
contents: read
|
||||
conan-recipe-version:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
|
||||
with:
|
||||
project_name: cura
|
||||
|
||||
conan-package-create-linux:
|
||||
needs: [ conan-recipe-version ]
|
||||
runs-on: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Python and pip
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
project_name: cura
|
||||
python-version: '3.11.x'
|
||||
cache: 'pip'
|
||||
cache-dependency-path: .github/workflows/requirements-conan-package.txt
|
||||
|
||||
conan-package-export:
|
||||
permissions:
|
||||
contents: read
|
||||
- name: Install Python requirements for runner
|
||||
run: pip install -r .github/workflows/requirements-conan-package.txt
|
||||
|
||||
needs: [ conan-recipe-version ]
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-export.yml@main
|
||||
with:
|
||||
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }}
|
||||
runs_on: 'ubuntu-20.04'
|
||||
python_version: '3.10.x'
|
||||
conan_logging_level: 'info'
|
||||
secrets: inherit
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install efibootmgr build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config flex bison g++-12 gcc-12 -y
|
||||
sudo apt install g++-12 gcc-12 -y
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
|
||||
|
||||
conan-package-create-linux:
|
||||
permissions:
|
||||
contents: read
|
||||
- name: Create the default Conan profile
|
||||
run: conan profile new default --detect
|
||||
|
||||
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux) }}
|
||||
needs: [ conan-recipe-version, conan-package-export ]
|
||||
- name: Get Conan configuration
|
||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/conan-package-create.yml@main
|
||||
with:
|
||||
project_name: ${{ needs.conan-recipe-version.outputs.project_name }}
|
||||
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
build_id: 1
|
||||
runs_on: 'ubuntu-20.04'
|
||||
python_version: '3.10.x'
|
||||
conan_logging_level: 'info'
|
||||
secrets: inherit
|
||||
- name: Create the Packages
|
||||
run: conan create . ${{ needs.conan-recipe-version.outputs.recipe_id_full }} --build=missing --update -o ${{ needs.conan-recipe-version.outputs.project_name }}:devtools=True
|
||||
|
||||
notify-export:
|
||||
if: ${{ always() }}
|
||||
needs: [ conan-recipe-version, conan-package-export ]
|
||||
- name: Create the latest alias
|
||||
if: always()
|
||||
run: conan alias ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New Conan recipe exported in ${{ github.repository }}"
|
||||
success_body: "Exported ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to export Conan Export in ${{ github.repository }}"
|
||||
failure_body: "Failed to exported ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
- name: Upload the Package(s)
|
||||
if: always()
|
||||
run: |
|
||||
conan upload ${{ needs.conan-recipe-version.outputs.recipe_id_full }} -r cura --all -c
|
||||
conan upload "*@_/_" -r cura --all -c
|
||||
conan upload ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} -r cura -c
|
||||
|
||||
notify-create:
|
||||
if: ${{ always() && ((github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux)) }}
|
||||
needs: [ conan-recipe-version, conan-package-create-linux ]
|
||||
notify-create:
|
||||
if: ${{ always() && (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
|
||||
needs: [ conan-recipe-version, conan-package-create-linux ]
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New binaries created in ${{ github.repository }}"
|
||||
success_body: "Created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to create binaries in ${{ github.repository }}"
|
||||
failure_body: "Failed to created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New binaries created in ${{ github.repository }}"
|
||||
success_body: "Created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to create binaries in ${{ github.repository }}"
|
||||
failure_body: "Failed to created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
|
|
16
.github/workflows/conan-recipe-export.yml
vendored
16
.github/workflows/conan-recipe-export.yml
vendored
|
@ -88,20 +88,12 @@ jobs:
|
|||
if: ${{ !inputs.conan_export_binaries }}
|
||||
run: conan export . ${{ inputs.recipe_id_full }}
|
||||
|
||||
- name: Remove the latest alias
|
||||
if: ${{ inputs.recipe_id_latest != '' && runner.os == 'Linux' }}
|
||||
run: |
|
||||
conan remove ${{ inputs.recipe_id_latest }} -r cura -f || true
|
||||
conan remove ${{ inputs.recipe_id_latest }} -r cura-ce -f || true
|
||||
|
||||
- name: Create the latest alias
|
||||
if: ${{ inputs.recipe_id_latest != '' && always() }}
|
||||
if: always()
|
||||
run: conan alias ${{ inputs.recipe_id_latest }} ${{ inputs.recipe_id_full }}
|
||||
|
||||
- name: Upload the Package(s)
|
||||
if: always()
|
||||
run: conan upload "*" -r cura --all -c
|
||||
|
||||
- name: Upload the Package(s) community
|
||||
if: ${{ always() && inputs.conan_upload_community == true }}
|
||||
run: conan upload "*" -r cura-ce -c
|
||||
run: |
|
||||
conan upload ${{ inputs.recipe_id_full }} -r cura --all -c
|
||||
conan upload ${{ inputs.recipe_id_latest }} -r cura -c
|
||||
|
|
77
.github/workflows/conan-recipe-version.yml
vendored
77
.github/workflows/conan-recipe-version.yml
vendored
|
@ -7,6 +7,11 @@ on:
|
|||
required: true
|
||||
type: string
|
||||
|
||||
user:
|
||||
required: false
|
||||
default: ultimaker
|
||||
type: string
|
||||
|
||||
additional_buildmetadata:
|
||||
required: false
|
||||
default: ""
|
||||
|
@ -86,12 +91,12 @@ jobs:
|
|||
run: |
|
||||
import subprocess
|
||||
import os
|
||||
from conans import tools
|
||||
from conans.errors import ConanException
|
||||
from conan.tools.scm import Version
|
||||
from conan.errors import ConanException
|
||||
from git import Repo
|
||||
|
||||
repo = Repo('.')
|
||||
user = "${{ github.repository_owner }}".lower()
|
||||
user = "${{ inputs.user }}".lower()
|
||||
project_name = "${{ inputs.project_name }}"
|
||||
event_name = "${{ github.event_name }}"
|
||||
issue_number = "${{ github.ref }}".split('/')[2]
|
||||
|
@ -103,16 +108,16 @@ jobs:
|
|||
# FIXME: for when we push a tag (such as an release)
|
||||
channel = "testing"
|
||||
if is_tag:
|
||||
branch_version = tools.Version(ref_name)
|
||||
branch_version = Version(ref_name)
|
||||
is_release_branch = True
|
||||
channel = "_"
|
||||
user = "_"
|
||||
actual_version = f"{branch_version}"
|
||||
else:
|
||||
try:
|
||||
branch_version = tools.Version(repo.active_branch.name)
|
||||
branch_version = Version(repo.active_branch.name)
|
||||
except ConanException:
|
||||
branch_version = tools.Version('0.0.0')
|
||||
branch_version = Version('0.0.0')
|
||||
if ref_name == f"{branch_version.major}.{branch_version.minor}":
|
||||
channel = 'stable'
|
||||
is_release_branch = True
|
||||
|
@ -125,17 +130,17 @@ jobs:
|
|||
channel = f"pr_{issue_number}"
|
||||
|
||||
# %% Get the actual version
|
||||
latest_branch_version = tools.Version("0.0.0")
|
||||
latest_branch_version = Version("0.0.0")
|
||||
latest_branch_tag = None
|
||||
for tag in repo.git.tag(merged = True).splitlines():
|
||||
for tag in repo.active_branch.repo.tags:
|
||||
if str(tag).startswith("firmware") or str(tag).startswith("master"):
|
||||
continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
|
||||
try:
|
||||
version = tools.Version(tag)
|
||||
version = Version(tag)
|
||||
except ConanException:
|
||||
continue
|
||||
if version > latest_branch_version and version < tools.Version("10.0.0"):
|
||||
# FIXME: stupid old Cura tags 13.04 etc. keep popping up
|
||||
if version > latest_branch_version and version < Version("6.0.0"):
|
||||
# FIXME: stupid old Cura tags 13.04 etc. keep popping up, als the fdm_material tag for firmware are messing with this
|
||||
latest_branch_version = version
|
||||
latest_branch_tag = repo.tag(tag)
|
||||
|
||||
|
@ -146,12 +151,12 @@ jobs:
|
|||
if commit == latest_branch_tag.commit:
|
||||
break
|
||||
no_commits += 1
|
||||
latest_branch_version_prerelease = latest_branch_version.prerelease
|
||||
if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease:
|
||||
latest_branch_version_prerelease = latest_branch_version.pre
|
||||
if latest_branch_version.pre and not "." in str(latest_branch_version.pre):
|
||||
# The prerealese did not contain a version number, default it to 1
|
||||
latest_branch_version_prerelease = f"{latest_branch_version.prerelease}.1"
|
||||
latest_branch_version_prerelease = f"{latest_branch_version.pre}.1"
|
||||
if event_name == "pull_request":
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version_prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}"
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{str(latest_branch_version_prerelease).lower()}+{buildmetadata}pr_{issue_number}_{no_commits}"
|
||||
channel_metadata = f"{channel}_{no_commits}"
|
||||
else:
|
||||
if channel in ("stable", "_", ""):
|
||||
|
@ -159,32 +164,34 @@ jobs:
|
|||
else:
|
||||
channel_metadata = f"{channel}_{no_commits}"
|
||||
if is_release_branch:
|
||||
if latest_branch_version.prerelease == "" and branch_version > latest_branch_version:
|
||||
if latest_branch_version.pre == "" and branch_version > latest_branch_version:
|
||||
actual_version = f"{branch_version.major}.{branch_version.minor}.0-beta.1+{buildmetadata}{channel_metadata}"
|
||||
elif latest_branch_version.prerelease == "":
|
||||
elif latest_branch_version.pre == "":
|
||||
# An actual full release has been created, we are working on patch
|
||||
bump_up_patch = int(latest_branch_version.patch) + 1
|
||||
bump_up_patch = int(str(latest_branch_version.patch)) + 1
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-beta.1+{buildmetadata}{channel_metadata}"
|
||||
elif latest_branch_version.pre is None:
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{int(latest_branch_version.patch.value) + 1}-beta.1+{buildmetadata}{channel_metadata}"
|
||||
else:
|
||||
# An beta release has been created we are working toward a next beta or full release
|
||||
bump_up_release_tag = int(latest_branch_version.prerelease.split('.')[1]) + 1
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.split('.')[0]}.{bump_up_release_tag}+{buildmetadata}{channel_metadata}"
|
||||
bump_up_release_tag = int(str(latest_branch_version.pre).split('.')[1]) + 1
|
||||
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{str(latest_branch_version.pre).split('.')[0]}.{bump_up_release_tag}+{buildmetadata}{channel_metadata}"
|
||||
else:
|
||||
max_branches_version = tools.Version("0.0.0")
|
||||
max_branches_version = Version("0.0.0")
|
||||
branches_no_commits = no_commits
|
||||
for branch in repo.references:
|
||||
try:
|
||||
if "remotes/origin" in branch.abspath:
|
||||
b_version = tools.Version(branch.name.split("/")[-1])
|
||||
if b_version < tools.Version("10.0.0") and b_version > max_branches_version:
|
||||
b_version = Version(branch.name.split("/")[-1])
|
||||
if b_version < Version("10.0.0") and b_version > max_branches_version:
|
||||
max_branches_version = b_version
|
||||
branches_no_commits = repo.commit().count() - branch.commit.count()
|
||||
except:
|
||||
pass
|
||||
if max_branches_version > latest_branch_version:
|
||||
actual_version = f"{max_branches_version.major}.{int(max_branches_version.minor) + 1}.0-alpha+{buildmetadata}{channel}_{branches_no_commits}"
|
||||
actual_version = f"{max_branches_version.major}.{int(str(max_branches_version.minor)) + 1}.0-alpha+{buildmetadata}{channel}_{branches_no_commits}"
|
||||
else:
|
||||
actual_version = f"{latest_branch_version.major}.{int(latest_branch_version.minor) + 1}.0-alpha+{buildmetadata}{channel_metadata}"
|
||||
actual_version = f"{latest_branch_version.major}.{int(str(latest_branch_version.minor)) + 1}.0-alpha+{buildmetadata}{channel_metadata}"
|
||||
|
||||
# %% Set the environment output
|
||||
output_env = os.environ["GITHUB_OUTPUT"]
|
||||
|
@ -203,14 +210,14 @@ jobs:
|
|||
f.writelines(f"semver_full={actual_version}\n")
|
||||
f.writelines(f"is_release_branch={str(is_release_branch).lower()}\n")
|
||||
|
||||
print("::group::Conan Recipe Information")
|
||||
print(f"name = {project_name}")
|
||||
print(f"version = {actual_version}")
|
||||
print(f"user = {user}")
|
||||
print(f"channel = {channel}")
|
||||
print(f"recipe_id_full = {project_name}/{actual_version}@{user}/{channel}")
|
||||
print(f"recipe_id_latest = {project_name}/latest@{user}/{channel}")
|
||||
print(f"semver_full = {actual_version}")
|
||||
print(f"is_release_branch = {str(is_release_branch).lower()}")
|
||||
print("::endgroup::")
|
||||
summary_env = os.environ["GITHUB_STEP_SUMMARY"]
|
||||
with open(summary_env, "w") as f:
|
||||
f.writelines(f"# {project_name}\n")
|
||||
f.writelines(f"name={project_name}\n")
|
||||
f.writelines(f"version={actual_version}\n")
|
||||
f.writelines(f"channel={channel}\n")
|
||||
f.writelines(f"recipe_id_full={project_name}/{actual_version}@{user}/{channel}\n")
|
||||
f.writelines(f"recipe_id_latest={project_name}/latest@{user}/{channel}\n")
|
||||
f.writelines(f"semver_full={actual_version}\n")
|
||||
f.writelines(f"is_release_branch={str(is_release_branch).lower()}\n")
|
||||
shell: python
|
||||
|
|
30
.github/workflows/cura-installer.yml
vendored
30
.github/workflows/cura-installer.yml
vendored
|
@ -126,9 +126,13 @@ jobs:
|
|||
if: ${{ runner.os == 'Linux' && startsWith(inputs.platform, 'ubuntu-22.04') }}
|
||||
run: sudo apt remove libodbc2 libodbcinst2 unixodbc-common -y
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
|
@ -269,6 +273,32 @@ jobs:
|
|||
f.writelines(f"INSTALLER_EXT={installer_ext}\n")
|
||||
f.writelines(f"FULL_INSTALLER_FILENAME={installer_filename}.{installer_ext}\n")
|
||||
|
||||
- name: Summarize the used Conan dependencies
|
||||
shell: python
|
||||
run: |
|
||||
import os
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
conan_install_info_path = Path("cura_inst/conan_install_info.json")
|
||||
conan_info = {"installed": []}
|
||||
if os.path.exists(conan_install_info_path):
|
||||
with open(conan_install_info_path, "r") as f:
|
||||
conan_info = json.load(f)
|
||||
sorted_deps = sorted([dep["recipe"]["id"].replace('#', r' rev: ') for dep in conan_info["installed"]])
|
||||
|
||||
summary_env = os.environ["GITHUB_STEP_SUMMARY"]
|
||||
content = ""
|
||||
if os.path.exists(summary_env):
|
||||
with open(summary_env, "r") as f:
|
||||
content = f.read()
|
||||
|
||||
with open(summary_env, "w") as f:
|
||||
f.write(content)
|
||||
f.writelines("# ${{ steps.filename.outputs.FULL_INSTALLER_FILENAME }} uses:\n")
|
||||
for dep in sorted_deps:
|
||||
f.writelines(f"`{dep}`\n")
|
||||
|
||||
- name: Archive the artifacts (bash)
|
||||
if: ${{ !inputs.installer && runner.os != 'Windows' }}
|
||||
run: tar -zcf "./${{ steps.filename.outputs.INSTALLER_FILENAME }}.tar.gz" "./UltiMaker-Cura/"
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
conan!=1.51.0,!=1.51.1,!=1.51.2,!=1.51.3,!=1.52.0,!=1.57.0,!=1.58.0
|
||||
conan==1.56.0
|
||||
sip
|
||||
|
|
4
.github/workflows/unit-test.yml
vendored
4
.github/workflows/unit-test.yml
vendored
|
@ -105,9 +105,13 @@ jobs:
|
|||
$HOME/.conan/conan_download_cache
|
||||
key: conan-${{ runner.os }}-${{ runner.arch }}-unit-cache
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config -y
|
||||
|
|
68
.github/workflows/update-translation.yml
vendored
Normal file
68
.github/workflows/update-translation.yml
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
name: update-translations
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-conan-package.txt'
|
||||
- 'requirements*.txt'
|
||||
- 'conanfile.py'
|
||||
- 'conandata.yml'
|
||||
- 'GitVersion.yml'
|
||||
- '*.jinja'
|
||||
|
||||
jobs:
|
||||
update-translations:
|
||||
name: Update translations
|
||||
|
||||
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-conan-package.txt
|
||||
|
||||
- name: Install Python requirements for runner
|
||||
run: pip install -r .github/workflows/requirements-conan-package.txt
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install efibootmgr build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config flex bison g++-12 gcc-12 -y
|
||||
sudo apt install g++-12 gcc-12 -y
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
|
||||
|
||||
- name: Create the default Conan profile
|
||||
run: conan profile new default --detect
|
||||
|
||||
- name: Get Conan configuration
|
||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||
|
||||
- name: generate the files using Conan install
|
||||
run: conan install . --build=missing --update -o cura:devtools=True
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
file_pattern: resources/i18n/*.po resources/i18n/*.pot
|
||||
status_options: --untracked-files=no
|
||||
commit_message: update translations
|
|
@ -1,4 +1,10 @@
|
|||
|
||||
> # Work with us!
|
||||
> If you're interested in working with us on Cura and Thingiverse, please apply to one of the open positions below.
|
||||
> - [Software Engineer C++ & Python](https://www.linkedin.com/jobs/view/3516545085) for [Cura](https://github.com/Ultimaker/Cura)
|
||||
> - [DevOps Engineer Community Software](https://www.linkedin.com/jobs/view/3516542580) for [Cura](https://github.com/Ultimaker/Cura) and [Thingiverse](https://www.thingiverse.com/)
|
||||
> - [QA / Test Engineer Cura (3D printing)](https://www.linkedin.com/jobs/view/3516538895) for [Cura](https://github.com/Ultimaker/Cura) and [Thingiverse](https://www.thingiverse.com/)
|
||||
|
||||
<br>
|
||||
|
||||
<div align = center>
|
||||
|
|
309
conandata.yml
309
conandata.yml
|
@ -1,235 +1,90 @@
|
|||
---
|
||||
# Usage: defaults to the first entry in this conandata.yml file
|
||||
# If you're on a release branch create an entry for that **version** e.q.: `5.1.0` update the requirements (use pinned versions, not latest)
|
||||
# also create a beta entry for that **version** e.q.: `5.1.0-beta`, update the requirements (use the <dep_name>/(latest)@ultimaker/stable)
|
||||
#
|
||||
# If you're working on a feature/bugfix branch from a release branch, create an entry for that **channel**, update the requirements (use
|
||||
# the <dep_name>/(latest)@ultimaker/stable)
|
||||
#
|
||||
# If you're working on a feature/bugfix branch from a main branch, it is optional to create an entry for that **channel**, update the
|
||||
# requirements (use the <dep_name>/(latest)@ultimaker/testing)
|
||||
#
|
||||
# Subject to change in the future!
|
||||
"5.4.0-alpha":
|
||||
requirements:
|
||||
- "pyarcus/5.2.2"
|
||||
- "curaengine/(latest)@ultimaker/testing"
|
||||
- "pysavitar/5.2.2"
|
||||
- "pynest2d/5.2.2"
|
||||
- "uranium/(latest)@ultimaker/testing"
|
||||
- "fdm_materials/(latest)@ultimaker/testing"
|
||||
- "cura_binary_data/(latest)@ultimaker/testing"
|
||||
- "cpython/3.10.4"
|
||||
internal_requirements:
|
||||
- "fdm_materials_private/(latest)@ultimaker/testing"
|
||||
- "cura_private_data/(latest)@ultimaker/testing"
|
||||
runinfo:
|
||||
entrypoint: "cura_app.py"
|
||||
pyinstaller:
|
||||
pyinstaller:
|
||||
runinfo:
|
||||
entrypoint: "cura_app.py"
|
||||
datas:
|
||||
cura_plugins:
|
||||
package: "cura"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
cura_resources:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
internal: true
|
||||
cura_private_data_plugins:
|
||||
package: "cura_private_data"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
internal: true
|
||||
uranium_plugins:
|
||||
package: "uranium"
|
||||
src: "plugins"
|
||||
dst: "share/uranium/plugins"
|
||||
uranium_resources:
|
||||
package: "uranium"
|
||||
src: "resources"
|
||||
dst: "share/uranium/resources"
|
||||
uranium_um_qt_qml_um:
|
||||
package: "uranium"
|
||||
src: "site-packages/UM/Qt/qml/UM"
|
||||
dst: "PyQt6/Qt6/qml/UM"
|
||||
cura_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/cura/resources"
|
||||
dst: "share/cura/resources"
|
||||
uranium_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/uranium/resources"
|
||||
dst: "share/uranium/resources"
|
||||
windows_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "windows"
|
||||
dst: "share/windows"
|
||||
fdm_materials:
|
||||
package: "fdm_materials"
|
||||
src: "materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
fdm_materials_private:
|
||||
package: "fdm_materials_private"
|
||||
src: "resources/materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
internal: true
|
||||
tcl:
|
||||
package: "tcl"
|
||||
src: "lib/tcl8.6"
|
||||
dst: "tcl"
|
||||
tk:
|
||||
package: "tk"
|
||||
src: "lib/tk8.6"
|
||||
dst: "tk"
|
||||
cura_plugins:
|
||||
package: "cura"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
cura_resources:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
internal: true
|
||||
uranium_plugins:
|
||||
package: "uranium"
|
||||
src: "plugins"
|
||||
dst: "share/uranium/plugins"
|
||||
uranium_resources:
|
||||
package: "uranium"
|
||||
src: "resources"
|
||||
dst: "share/uranium/resources"
|
||||
uranium_um_qt_qml_um:
|
||||
package: "uranium"
|
||||
src: "site-packages/UM/Qt/qml/UM"
|
||||
dst: "PyQt6/Qt6/qml/UM"
|
||||
cura_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/cura/resources"
|
||||
dst: "share/cura/resources"
|
||||
uranium_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/uranium/resources"
|
||||
dst: "share/uranium/resources"
|
||||
windows_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "windows"
|
||||
dst: "share/windows"
|
||||
fdm_materials:
|
||||
package: "fdm_materials"
|
||||
src: "materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
tcl:
|
||||
package: "tcl"
|
||||
src: "lib/tcl8.6"
|
||||
dst: "tcl"
|
||||
tk:
|
||||
package: "tk"
|
||||
src: "lib/tk8.6"
|
||||
dst: "tk"
|
||||
binaries:
|
||||
curaengine:
|
||||
package: "curaengine"
|
||||
src: "bin"
|
||||
dst: "."
|
||||
binary: "CuraEngine"
|
||||
curaengine:
|
||||
package: "curaengine"
|
||||
src: "bin"
|
||||
dst: "."
|
||||
binary: "CuraEngine"
|
||||
hiddenimports:
|
||||
- "pySavitar"
|
||||
- "pyArcus"
|
||||
- "pynest2d"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "logging.handlers"
|
||||
- "zeroconf"
|
||||
- "fcntl"
|
||||
- "stl"
|
||||
- "serial"
|
||||
- "pySavitar"
|
||||
- "pyArcus"
|
||||
- "pynest2d"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "logging.handlers"
|
||||
- "zeroconf"
|
||||
- "fcntl"
|
||||
- "stl"
|
||||
- "serial"
|
||||
collect_all:
|
||||
- "cura"
|
||||
- "UM"
|
||||
- "serial"
|
||||
- "Charon"
|
||||
- "sqlite3"
|
||||
- "trimesh"
|
||||
- "win32ctypes"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "stl"
|
||||
- "cura"
|
||||
- "UM"
|
||||
- "serial"
|
||||
- "Charon"
|
||||
- "sqlite3"
|
||||
- "trimesh"
|
||||
- "win32ctypes"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "stl"
|
||||
icon:
|
||||
Windows: "./icons/Cura.ico"
|
||||
Macos: "./icons/cura.icns"
|
||||
Linux: "./icons/cura-128.png"
|
||||
"5.3.0":
|
||||
requirements:
|
||||
- "pyarcus/5.2.2"
|
||||
- "curaengine/5.3.0"
|
||||
- "pysavitar/5.2.2"
|
||||
- "pynest2d/5.2.2"
|
||||
- "uranium/5.3.0"
|
||||
- "fdm_materials/5.3.0"
|
||||
- "cura_binary_data/5.3.0"
|
||||
- "cpython/3.10.4"
|
||||
internal_requirements:
|
||||
- "fdm_materials_private/(latest)@ultimaker/testing"
|
||||
- "cura_private_data/(latest)@ultimaker/testing"
|
||||
runinfo:
|
||||
entrypoint: "cura_app.py"
|
||||
pyinstaller:
|
||||
datas:
|
||||
cura_plugins:
|
||||
package: "cura"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
cura_resources:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
internal: true
|
||||
cura_private_data_plugins:
|
||||
package: "cura_private_data"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
internal: true
|
||||
uranium_plugins:
|
||||
package: "uranium"
|
||||
src: "plugins"
|
||||
dst: "share/uranium/plugins"
|
||||
uranium_resources:
|
||||
package: "uranium"
|
||||
src: "resources"
|
||||
dst: "share/uranium/resources"
|
||||
uranium_um_qt_qml_um:
|
||||
package: "uranium"
|
||||
src: "site-packages/UM/Qt/qml/UM"
|
||||
dst: "PyQt6/Qt6/qml/UM"
|
||||
cura_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/cura/resources"
|
||||
dst: "share/cura/resources"
|
||||
uranium_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/uranium/resources"
|
||||
dst: "share/uranium/resources"
|
||||
windows_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "windows"
|
||||
dst: "share/windows"
|
||||
fdm_materials:
|
||||
package: "fdm_materials"
|
||||
src: "materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
fdm_materials_private:
|
||||
package: "fdm_materials_private"
|
||||
src: "resources/materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
internal: true
|
||||
tcl:
|
||||
package: "tcl"
|
||||
src: "lib/tcl8.6"
|
||||
dst: "tcl"
|
||||
tk:
|
||||
package: "tk"
|
||||
src: "lib/tk8.6"
|
||||
dst: "tk"
|
||||
binaries:
|
||||
curaengine:
|
||||
package: "curaengine"
|
||||
src: "bin"
|
||||
dst: "."
|
||||
binary: "CuraEngine"
|
||||
hiddenimports:
|
||||
- "pySavitar"
|
||||
- "pyArcus"
|
||||
- "pynest2d"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "logging.handlers"
|
||||
- "zeroconf"
|
||||
- "fcntl"
|
||||
- "stl"
|
||||
- "serial"
|
||||
collect_all:
|
||||
- "cura"
|
||||
- "UM"
|
||||
- "serial"
|
||||
- "Charon"
|
||||
- "sqlite3"
|
||||
- "trimesh"
|
||||
- "win32ctypes"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "stl"
|
||||
icon:
|
||||
Windows: "./icons/Cura.ico"
|
||||
Macos: "./icons/cura.icns"
|
||||
Linux: "./icons/cura-128.png"
|
||||
Windows: "./icons/Cura.ico"
|
||||
Macos: "./icons/cura.icns"
|
||||
Linux: "./icons/cura-128.png"
|
||||
pycharm_targets:
|
||||
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
|
||||
module_name: Cura
|
||||
|
|
174
conanfile.py
174
conanfile.py
|
@ -6,11 +6,11 @@ from jinja2 import Template
|
|||
from conan import ConanFile
|
||||
from conan.tools.files import copy, rmdir, save, mkdir
|
||||
from conan.tools.microsoft import unix_path
|
||||
from conan.tools.env import VirtualRunEnv, Environment
|
||||
from conan.tools.env import VirtualRunEnv, Environment, VirtualBuildEnv
|
||||
from conan.tools.scm import Version
|
||||
from conan.errors import ConanInvalidConfiguration, ConanException
|
||||
|
||||
required_conan_version = ">=1.52.0"
|
||||
required_conan_version = "<=1.56.0"
|
||||
|
||||
|
||||
class CuraConan(ConanFile):
|
||||
|
@ -19,15 +19,14 @@ class CuraConan(ConanFile):
|
|||
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")
|
||||
topics = ("conan", "python", "pyqt6", "qt", "qml", "3d-printing", "slicer")
|
||||
build_policy = "missing"
|
||||
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
|
||||
|
||||
# FIXME: Remove specific branch once merged to main
|
||||
# Extending the conanfile with the UMBaseConanfile https://github.com/Ultimaker/conan-ultimaker-index/tree/CURA-9177_Fix_CI_CD/recipes/umbase
|
||||
python_requires = "umbase/[>=0.1.7]@ultimaker/stable", "translationextractor/[>=1.0.0]@ultimaker/stable"
|
||||
python_requires = "umbase/[>=0.1.7]@ultimaker/stable", "translationextractor/[>=2.1.1]@ultimaker/stable"
|
||||
python_requires_extend = "umbase.UMBaseConanfile"
|
||||
|
||||
options = {
|
||||
|
@ -48,12 +47,10 @@ class CuraConan(ConanFile):
|
|||
"cura_debug_mode": False, # Not yet implemented
|
||||
"internal": False,
|
||||
}
|
||||
scm = {
|
||||
"type": "git",
|
||||
"subfolder": ".",
|
||||
"url": "auto",
|
||||
"revision": "auto"
|
||||
}
|
||||
|
||||
def set_version(self):
|
||||
if self.version == "auto":
|
||||
self.version = "5.4.0-alpha"
|
||||
|
||||
@property
|
||||
def _pycharm_targets(self):
|
||||
|
@ -152,8 +149,16 @@ class CuraConan(ConanFile):
|
|||
py_interp = Path(*[f'"{p}"' if " " in p else p for p in py_interp.parts])
|
||||
return py_interp
|
||||
|
||||
@property
|
||||
def _pyinstaller_spec_arch(self):
|
||||
if self.settings.os == "Macos":
|
||||
if self.settings.arch == "armv8":
|
||||
return "'arm64'"
|
||||
return "'x86_64'"
|
||||
return "None"
|
||||
|
||||
def _generate_cura_version(self, location):
|
||||
with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f:
|
||||
with open(os.path.join(self.recipe_folder, "CuraVersion.py.jinja"), "r") as f:
|
||||
cura_version_py = Template(f.read())
|
||||
|
||||
# If you want a specific Cura version to show up on the splash screen add the user configuration `user.cura:version=VERSION`
|
||||
|
@ -164,7 +169,7 @@ class CuraConan(ConanFile):
|
|||
internal_tag = f"+internal" if self.options.internal else ""
|
||||
cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}{internal_tag}"
|
||||
|
||||
with open(Path(location, "CuraVersion.py"), "w") as f:
|
||||
with open(os.path.join(location, "CuraVersion.py"), "w") as f:
|
||||
f.write(cura_version_py.render(
|
||||
cura_app_name = self.name,
|
||||
cura_app_display_name = self._app_name,
|
||||
|
@ -179,7 +184,7 @@ class CuraConan(ConanFile):
|
|||
cura_latest_url = self._cura_latest_url))
|
||||
|
||||
def _generate_pyinstaller_spec(self, location, entrypoint_location, icon_path, entitlements_file):
|
||||
pyinstaller_metadata = self._um_data()["pyinstaller"]
|
||||
pyinstaller_metadata = self.conan_data["pyinstaller"]
|
||||
datas = [(str(self._base_dir.joinpath("conan_install_info.json")), ".")]
|
||||
for data in pyinstaller_metadata["datas"].values():
|
||||
if not self.options.internal and data.get("internal", False):
|
||||
|
@ -188,33 +193,33 @@ class CuraConan(ConanFile):
|
|||
if "package" in data: # get the paths from conan package
|
||||
if data["package"] == self.name:
|
||||
if self.in_local_cache:
|
||||
src_path = Path(self.package_folder, data["src"])
|
||||
src_path = os.path.join(self.package_folder, data["src"])
|
||||
else:
|
||||
src_path = Path(self.source_folder, data["src"])
|
||||
src_path = os.path.join(self.source_folder, data["src"])
|
||||
else:
|
||||
src_path = Path(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
||||
src_path = os.path.join(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
||||
elif "root" in data: # get the paths relative from the sourcefolder
|
||||
src_path = Path(self.source_folder, data["root"], data["src"])
|
||||
src_path = os.path.join(self.source_folder, data["root"], data["src"])
|
||||
else:
|
||||
continue
|
||||
if src_path.exists():
|
||||
if Path(src_path).exists():
|
||||
datas.append((str(src_path), data["dst"]))
|
||||
|
||||
binaries = []
|
||||
for binary in pyinstaller_metadata["binaries"].values():
|
||||
if "package" in binary: # get the paths from conan package
|
||||
src_path = Path(self.deps_cpp_info[binary["package"]].rootpath, binary["src"])
|
||||
src_path = os.path.join(self.deps_cpp_info[binary["package"]].rootpath, binary["src"])
|
||||
elif "root" in binary: # get the paths relative from the sourcefolder
|
||||
src_path = Path(self.source_folder, binary["root"], binary["src"])
|
||||
src_path = os.path.join(self.source_folder, binary["root"], binary["src"])
|
||||
else:
|
||||
continue
|
||||
if not src_path.exists():
|
||||
if not Path(src_path).exists():
|
||||
self.output.warning(f"Source path for binary {binary['binary']} does not exist")
|
||||
continue
|
||||
|
||||
for bin in src_path.glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"):
|
||||
for bin in Path(src_path).glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"):
|
||||
binaries.append((str(bin), binary["dst"]))
|
||||
for bin in src_path.glob(binary["binary"]):
|
||||
for bin in Path(src_path).glob(binary["binary"]):
|
||||
binaries.append((str(bin), binary["dst"]))
|
||||
|
||||
# Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller
|
||||
|
@ -232,13 +237,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(os.path.join(self.recipe_folder, "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(os.path.join(location, "UltiMaker-Cura.spec"), "w") as f:
|
||||
f.write(pyinstaller.render(
|
||||
name = str(self.options.display_name).replace(" ", "-"),
|
||||
display_name = self._app_name,
|
||||
|
@ -253,15 +258,25 @@ class CuraConan(ConanFile):
|
|||
osx_bundle_identifier = "'nl.ultimaker.cura'" if self.settings.os == "Macos" else "None",
|
||||
upx = str(self.settings.os == "Windows"),
|
||||
strip = False, # This should be possible on Linux and MacOS but, it can also cause issues on some distributions. Safest is to disable it for now
|
||||
target_arch = "'x86_64'" if self.settings.os == "Macos" else "None", # FIXME: Make this dependent on the settings.arch_target
|
||||
target_arch = self._pyinstaller_spec_arch,
|
||||
macos = self.settings.os == "Macos",
|
||||
version = f"'{version}'",
|
||||
short_version = f"'{cura_version.major}.{cura_version.minor}.{cura_version.patch}'",
|
||||
))
|
||||
|
||||
def set_version(self):
|
||||
if self.version is None:
|
||||
self.version = self._umdefault_version()
|
||||
def export_sources(self):
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "plugins"), os.path.join(self.export_sources_folder, "plugins"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "resources"), os.path.join(self.export_sources_folder, "resources"), excludes = "*.mo")
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "tests"), os.path.join(self.export_sources_folder, "tests"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "cura"), os.path.join(self.export_sources_folder, "cura"), excludes="CuraVersion.py")
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "packaging"), os.path.join(self.export_sources_folder, "packaging"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, ".run_templates"), os.path.join(self.export_sources_folder, ".run_templates"))
|
||||
copy(self, "requirements.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "requirements-dev.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "requirements-ultimaker.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "UltiMaker-Cura.spec.jinja", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "CuraVersion.py.jinja", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "cura_app.py", self.recipe_folder, self.export_sources_folder)
|
||||
|
||||
def configure(self):
|
||||
self.options["pyarcus"].shared = True
|
||||
|
@ -275,60 +290,70 @@ class CuraConan(ConanFile):
|
|||
raise ConanInvalidConfiguration("Only versions 5+ are support")
|
||||
|
||||
def requirements(self):
|
||||
for req in self._um_data()["requirements"]:
|
||||
self.requires(req)
|
||||
self.requires("pyarcus/5.2.2")
|
||||
self.requires("curaengine/(latest)@ultimaker/testing")
|
||||
self.requires("pysavitar/5.2.2")
|
||||
self.requires("pynest2d/5.2.2")
|
||||
self.requires("uranium/(latest)@ultimaker/testing")
|
||||
self.requires("fdm_materials/(latest)@{}/testing".format("internal" if self.options.internal else "ultimaker"))
|
||||
self.requires("cura_binary_data/(latest)@ultimaker/testing")
|
||||
self.requires("cpython/3.10.4")
|
||||
if self.options.internal:
|
||||
for req in self._um_data()["internal_requirements"]:
|
||||
self.requires(req)
|
||||
self.requires("cura_private_data/(latest)@ultimaker/testing")
|
||||
|
||||
def build_requirements(self):
|
||||
if self.options.devtools:
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
self.tool_requires("gettext/0.21", force_host_context=True)
|
||||
self.tool_requires("gettext/0.21@ultimaker/testing", force_host_context = True)
|
||||
|
||||
def layout(self):
|
||||
self.folders.source = "."
|
||||
self.folders.build = "venv"
|
||||
self.folders.generators = Path(self.folders.build, "conan")
|
||||
self.folders.generators = os.path.join(self.folders.build, "conan")
|
||||
|
||||
self.cpp.package.libdirs = [os.path.join("site-packages", "cura")]
|
||||
self.cpp.package.bindirs = ["bin"]
|
||||
self.cpp.package.resdirs = ["resources", "plugins", "packaging", "pip_requirements"] # pip_requirements should be the last item in the list
|
||||
|
||||
def build(self):
|
||||
if self.options.devtools:
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
||||
mo_file = self.build_path.joinpath(po_file.with_suffix('.mo').relative_to(self.source_path))
|
||||
mkdir(self, str(unix_path(self, mo_file.parent)))
|
||||
self.run(f"{cpp_info.bindirs[0]}/msgfmt {po_file} -o {mo_file} -f", env="conanbuild", ignore_errors=True)
|
||||
|
||||
def generate(self):
|
||||
copy(self, "cura_app.py", self.source_folder, str(self._script_dir))
|
||||
cura_run_envvars = self._cura_run_env.vars(self, scope = "run")
|
||||
ext = ".ps1" if self.settings.os == "Windows" else ".sh"
|
||||
cura_run_envvars.save_script(self.folders.generators.joinpath(f"cura_run_environment{ext}"))
|
||||
cura_run_envvars.save_script(os.path.join(self.folders.generators, f"cura_run_environment{ext}"))
|
||||
|
||||
vr = VirtualRunEnv(self)
|
||||
vr.generate()
|
||||
|
||||
self._generate_cura_version(Path(self.source_folder, "cura"))
|
||||
self._generate_cura_version(os.path.join(self.source_folder, "cura"))
|
||||
|
||||
if self.options.devtools:
|
||||
entitlements_file = "'{}'".format(Path(self.source_folder, "packaging", "MacOS", "cura.entitlements"))
|
||||
entitlements_file = "'{}'".format(os.path.join(self.source_folder, "packaging", "MacOS", "cura.entitlements"))
|
||||
self._generate_pyinstaller_spec(location = self.generators_folder,
|
||||
entrypoint_location = "'{}'".format(Path(self.source_folder, self._um_data()["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(Path(self.source_folder, "packaging", self._um_data()["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entrypoint_location = "'{}'".format(os.path.join(self.source_folder, self.conan_data["pyinstaller"]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(os.path.join(self.source_folder, "packaging", self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
|
||||
|
||||
# Update the po files
|
||||
# Update the po and pot files
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type=str):
|
||||
vb = VirtualBuildEnv(self)
|
||||
vb.generate()
|
||||
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
pot = self.python_requires["translationextractor"].module.ExtractTranslations(self, cpp_info.bindirs[0])
|
||||
pot.generate()
|
||||
|
||||
def build(self):
|
||||
if self.options.devtools:
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
# Extract all the new strings and update the existing po files
|
||||
extractTool = self.python_requires["translationextractor"].module.ExtractTranslations(self, self.source_path.joinpath("resources", "i18n"), "cura.pot")
|
||||
extractTool.generate()
|
||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
||||
mo_file = Path(self.build_folder, po_file.with_suffix('.mo').relative_to(self.source_path))
|
||||
mo_file = mo_file.parent.joinpath("LC_MESSAGES", mo_file.name)
|
||||
mkdir(self, str(unix_path(self, Path(mo_file).parent)))
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
self.run(f"{cpp_info.bindirs[0]}/msgfmt {po_file} -o {mo_file} -f", env="conanbuild", ignore_errors=True)
|
||||
|
||||
def imports(self):
|
||||
self.copy("CuraEngine.exe", root_package = "curaengine", src = "@bindirs", dst = "", keep_path = False)
|
||||
|
@ -339,8 +364,6 @@ class CuraConan(ConanFile):
|
|||
self.copy("*.sig", root_package = "fdm_materials", src = "@resdirs", dst = "resources/materials", keep_path = False)
|
||||
|
||||
if self.options.internal:
|
||||
self.copy("*.fdm_material", root_package = "fdm_materials_private", src = "@resdirs", dst = "resources/materials", keep_path = False)
|
||||
self.copy("*.sig", root_package = "fdm_materials_private", src = "@resdirs", dst = "resources/materials", keep_path = False)
|
||||
self.copy("*", root_package = "cura_private_data", src = self.deps_cpp_info["cura_private_data"].resdirs[0],
|
||||
dst = self._share_dir.joinpath("cura", "resources"), keep_path = True)
|
||||
|
||||
|
@ -378,10 +401,6 @@ class CuraConan(ConanFile):
|
|||
|
||||
# Copy internal resources
|
||||
if self.options.internal:
|
||||
self.copy_deps("*.fdm_material", root_package = "fdm_materials_private", src = self.deps_cpp_info["fdm_materials_private"].resdirs[0],
|
||||
dst = self._share_dir.joinpath("cura", "resources", "materials"), keep_path = False)
|
||||
self.copy_deps("*.sig", root_package = "fdm_materials_private", src = self.deps_cpp_info["fdm_materials_private"].resdirs[0],
|
||||
dst = self._share_dir.joinpath("cura", "resources", "materials"), keep_path = False)
|
||||
self.copy_deps("*", root_package = "cura_private_data", src = self.deps_cpp_info["cura_private_data"].resdirs[0],
|
||||
dst = self._share_dir.joinpath("cura", "resources"), keep_path = True)
|
||||
self.copy_deps("*", root_package = "cura_private_data", src = self.deps_cpp_info["cura_private_data"].resdirs[1],
|
||||
|
@ -395,7 +414,7 @@ class CuraConan(ConanFile):
|
|||
self.copy_deps("*", root_package = "uranium", src = self.deps_cpp_info["uranium"].libdirs[0],
|
||||
dst = self._site_packages.joinpath("UM"),
|
||||
keep_path = True)
|
||||
self.copy_deps("*", root_package = "uranium", src = str(Path(self.deps_cpp_info["uranium"].libdirs[0], "Qt", "qml", "UM")),
|
||||
self.copy_deps("*", root_package = "uranium", src = str(os.path.join(self.deps_cpp_info["uranium"].libdirs[0], "Qt", "qml", "UM")),
|
||||
dst = self._site_packages.joinpath("PyQt6", "Qt6", "qml", "UM"),
|
||||
keep_path = True)
|
||||
|
||||
|
@ -438,24 +457,24 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
|
|||
env_prefix = env_prefix)
|
||||
|
||||
ext = ".sh" if self.settings.os != "Windows" else ".ps1"
|
||||
save(self, self._script_dir.joinpath(f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env)
|
||||
save(self, os.path.join(self._script_dir, f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env)
|
||||
|
||||
self._generate_cura_version(Path(self._site_packages, "cura"))
|
||||
self._generate_cura_version(os.path.join(self._site_packages, "cura"))
|
||||
|
||||
entitlements_file = "'{}'".format(Path(self.cpp_info.res_paths[2], "MacOS", "cura.entitlements"))
|
||||
self._generate_pyinstaller_spec(location = self._base_dir,
|
||||
entrypoint_location = "'{}'".format(Path(self.cpp_info.bin_paths[0], self._um_data()["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(Path(self.cpp_info.res_paths[2], self._um_data()["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entrypoint_location = "'{}'".format(os.path.join(self.package_folder, self.cpp_info.bindirs[0], self.conan_data["pyinstaller"]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(os.path.join(self.package_folder, self.cpp_info.resdirs[2], self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
|
||||
|
||||
def package(self):
|
||||
copy(self, "cura_app.py", src = self.source_path, dst = self.package_path.joinpath(self.cpp.package.bindirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("cura"), dst = self.package_path.joinpath(self.cpp.package.libdirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("resources"), dst = self.package_path.joinpath(self.cpp.package.resdirs[0]), excludes="*.po")
|
||||
copy(self, "*", src = self.build_path.joinpath("resources"), dst = self.package_path.joinpath(self.cpp.package.resdirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("plugins"), dst = self.package_path.joinpath(self.cpp.package.resdirs[1]))
|
||||
copy(self, "requirement*.txt", src = self.source_path, dst = self.package_path.joinpath(self.cpp.package.resdirs[-1]))
|
||||
copy(self, "*", src = self.source_path.joinpath("packaging"), dst = self.package_path.joinpath(self.cpp.package.resdirs[2]))
|
||||
copy(self, "cura_app.py", src = self.source_folder, dst = os.path.join(self.package_folder, self.cpp.package.bindirs[0]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "cura"), dst = os.path.join(self.package_folder, self.cpp.package.libdirs[0]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "resources"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[0]))
|
||||
copy(self, "*.mo", os.path.join(self.build_folder, "resources"), os.path.join(self.package_folder, "resources"))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "plugins"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[1]))
|
||||
copy(self, "requirement*.txt", src = self.source_folder, dst = os.path.join(self.package_folder, self.cpp.package.resdirs[-1]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "packaging"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[2]))
|
||||
|
||||
def package_info(self):
|
||||
self.user_info.pip_requirements = "requirements.txt"
|
||||
|
@ -463,17 +482,14 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
|
|||
self.user_info.pip_requirements_build = "requirements-dev.txt"
|
||||
|
||||
if self.in_local_cache:
|
||||
self.runenv_info.append_path("PYTHONPATH", str(Path(self.cpp_info.lib_paths[0]).parent))
|
||||
self.runenv_info.append_path("PYTHONPATH", self.cpp_info.res_paths[1]) # Add plugins to PYTHONPATH
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "site-packages"))
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "plugins"))
|
||||
else:
|
||||
self.runenv_info.append_path("PYTHONPATH", self.source_folder)
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.source_folder, "plugins"))
|
||||
|
||||
def package_id(self):
|
||||
del self.info.settings.os
|
||||
del self.info.settings.compiler
|
||||
del self.info.settings.build_type
|
||||
del self.info.settings.arch
|
||||
self.info.clear()
|
||||
|
||||
# The following options shouldn't be used to determine the hash, since these are only used to set the CuraVersion.py
|
||||
# which will als be generated by the deploy method during the `conan install cura/5.1.0@_/_`
|
||||
|
|
|
@ -2076,3 +2076,7 @@ class CuraApplication(QtApplication):
|
|||
@classmethod
|
||||
def getInstance(cls, *args, **kwargs) -> "CuraApplication":
|
||||
return cast(CuraApplication, super().getInstance(**kwargs))
|
||||
|
||||
@pyqtProperty(bool, constant=True)
|
||||
def isEnterprise(self) -> bool:
|
||||
return ApplicationMetadata.IsEnterpriseVersion
|
||||
|
|
|
@ -54,6 +54,8 @@ class CompatibleMachineModel(ListModel):
|
|||
|
||||
# initialize & add current active material:
|
||||
for extruder in printer.extruders:
|
||||
if not extruder.activeMaterial:
|
||||
continue
|
||||
materials = [_makeMaterial(
|
||||
extruder.activeMaterial.brand, extruder.activeMaterial.name, extruder.activeMaterial.color)]
|
||||
extruder_configs[extruder.getPosition()] = {
|
||||
|
|
|
@ -466,7 +466,6 @@ class ExtruderManager(QObject):
|
|||
return False
|
||||
return list(active_material_node_qualities.keys())[0] != "empty_quality"
|
||||
|
||||
|
||||
@pyqtSlot(str, result="QVariant")
|
||||
def getInstanceExtruderValues(self, key: str) -> List:
|
||||
"""Get all extruder values for a certain setting.
|
||||
|
|
|
@ -751,8 +751,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
|||
global_stacks = self._container_registry.findContainerStacks(id = self._dialog.getMachineToOverride(), type = "machine")
|
||||
if not global_stacks:
|
||||
message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tag <filename>!",
|
||||
"Project file <filename>{0}</filename> is made using profiles that"
|
||||
" are unknown to this version of Ultimaker Cura.", file_name),
|
||||
"Project file <filename>{0}</filename> is made using profiles that are unknown to this version of UltiMaker Cura.", file_name),
|
||||
message_type = Message.MessageType.ERROR)
|
||||
message.show()
|
||||
self.setWorkspaceName("")
|
||||
|
|
|
@ -143,7 +143,7 @@ class CuraEngineBackend(QObject, Backend):
|
|||
self._last_num_objects = defaultdict(int) #type: Dict[int, int] # Count number of objects to see if there is something changed
|
||||
self._postponed_scene_change_sources = [] #type: List[SceneNode] # scene change is postponed (by a tool)
|
||||
|
||||
self._slice_start_time = None #type: Optional[float]
|
||||
self._time_start_process = None #type: Optional[float]
|
||||
self._is_disabled = False #type: bool
|
||||
|
||||
application.getPreferences().addPreference("general/auto_slice", False)
|
||||
|
@ -171,10 +171,25 @@ class CuraEngineBackend(QObject, Backend):
|
|||
)
|
||||
self._slicing_error_message.actionTriggered.connect(self._reportBackendError)
|
||||
|
||||
self._resetLastSliceTimeStats()
|
||||
self._snapshot = None #type: Optional[QImage]
|
||||
|
||||
application.initializationFinished.connect(self.initialize)
|
||||
|
||||
def _resetLastSliceTimeStats(self) -> None:
|
||||
self._time_start_process = None
|
||||
self._time_send_message = None
|
||||
self._time_end_slice = None
|
||||
|
||||
def resetAndReturnLastSliceTimeStats(self) -> Dict[str, float]:
|
||||
last_slice_data = {
|
||||
"time_start_process": self._time_start_process,
|
||||
"time_send_message": self._time_send_message,
|
||||
"time_end_slice": self._time_end_slice,
|
||||
}
|
||||
self._resetLastSliceTimeStats()
|
||||
return last_slice_data
|
||||
|
||||
def initialize(self) -> None:
|
||||
application = CuraApplication.getInstance()
|
||||
self._multi_build_plate_model = application.getMultiBuildPlateModel()
|
||||
|
@ -288,7 +303,7 @@ class CuraEngineBackend(QObject, Backend):
|
|||
self._createSnapshot()
|
||||
|
||||
Logger.log("i", "Starting to slice...")
|
||||
self._slice_start_time = time()
|
||||
self._time_start_process = time()
|
||||
if not self._build_plates_to_be_sliced:
|
||||
self.processingProgress.emit(1.0)
|
||||
Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.")
|
||||
|
@ -512,8 +527,10 @@ class CuraEngineBackend(QObject, Backend):
|
|||
# Notify the user that it's now up to the backend to do it's job
|
||||
self.setState(BackendState.Processing)
|
||||
|
||||
if self._slice_start_time:
|
||||
Logger.log("d", "Sending slice message took %s seconds", time() - self._slice_start_time )
|
||||
# Handle time reporting.
|
||||
self._time_send_message = time()
|
||||
if self._time_start_process:
|
||||
Logger.log("d", "Sending slice message took %s seconds", self._time_send_message - self._time_start_process)
|
||||
|
||||
def determineAutoSlicing(self) -> bool:
|
||||
"""Determine enable or disable auto slicing. Return True for enable timer and False otherwise.
|
||||
|
@ -750,6 +767,7 @@ class CuraEngineBackend(QObject, Backend):
|
|||
|
||||
self.setState(BackendState.Done)
|
||||
self.processingProgress.emit(1.0)
|
||||
self._time_end_slice = time()
|
||||
|
||||
try:
|
||||
gcode_list = self._scene.gcode_dict[self._start_slice_job_build_plate] #type: ignore #Because we generate this attribute dynamically.
|
||||
|
@ -766,8 +784,8 @@ class CuraEngineBackend(QObject, Backend):
|
|||
gcode_list[index] = replaced
|
||||
|
||||
self._slicing = False
|
||||
if self._slice_start_time:
|
||||
Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time )
|
||||
if self._time_start_process:
|
||||
Logger.log("d", "Slicing took %s seconds", time() - self._time_start_process)
|
||||
Logger.log("d", "Number of models per buildplate: %s", dict(self._numObjectsPerBuildPlate()))
|
||||
|
||||
# See if we need to process the sliced layers job.
|
||||
|
|
|
@ -32,6 +32,7 @@ class FlavorParser:
|
|||
"""This parser is intended to interpret the common firmware codes among all the different flavors"""
|
||||
|
||||
MAX_EXTRUDER_COUNT = 16
|
||||
DEFAULT_FILAMENT_DIAMETER = 2.85
|
||||
|
||||
def __init__(self) -> None:
|
||||
CuraApplication.getInstance().hideMessageSignal.connect(self._onHideMessage)
|
||||
|
@ -48,7 +49,7 @@ class FlavorParser:
|
|||
self._is_layers_in_file = False # Does the Gcode have the layers comment?
|
||||
self._extruder_offsets = {} # type: Dict[int, List[float]] # Offsets for multi extruders. key is index, value is [x-offset, y-offset]
|
||||
self._current_layer_thickness = 0.2 # default
|
||||
self._filament_diameter = 2.85 # default
|
||||
self._current_filament_diameter = 2.85 # default
|
||||
self._previous_extrusion_value = 0.0 # keep track of the filament retractions
|
||||
|
||||
CuraApplication.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
||||
|
@ -152,7 +153,7 @@ class FlavorParser:
|
|||
|
||||
def _calculateLineWidth(self, current_point: Position, previous_point: Position, current_extrusion: float, previous_extrusion: float, layer_thickness: float) -> float:
|
||||
# Area of the filament
|
||||
Af = (self._filament_diameter / 2) ** 2 * numpy.pi
|
||||
Af = (self._current_filament_diameter / 2) ** 2 * numpy.pi
|
||||
# Length of the extruded filament
|
||||
de = current_extrusion - previous_extrusion
|
||||
# Volume of the extruded filament
|
||||
|
@ -287,7 +288,11 @@ class FlavorParser:
|
|||
|
||||
def processTCode(self, global_stack, T: int, line: str, position: Position, path: List[List[Union[float, int]]]) -> Position:
|
||||
self._extruder_number = T
|
||||
self._filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
try:
|
||||
self._current_filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
except IndexError:
|
||||
self._current_filament_diameter = self.DEFAULT_FILAMENT_DIAMETER
|
||||
|
||||
if self._extruder_number + 1 > len(position.e):
|
||||
self._extrusion_length_offset.extend([0] * (self._extruder_number - len(position.e) + 1))
|
||||
position.e.extend([0] * (self._extruder_number - len(position.e) + 1))
|
||||
|
@ -323,7 +328,11 @@ class FlavorParser:
|
|||
if not global_stack:
|
||||
return None
|
||||
|
||||
self._filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
try:
|
||||
self._current_filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
except IndexError:
|
||||
# There can be a mismatch between the number of extruders in the G-Code file and the number of extruders in the current machine.
|
||||
self._current_filament_diameter = self.DEFAULT_FILAMENT_DIAMETER
|
||||
|
||||
scene_node = CuraSceneNode()
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"api": 8,
|
||||
"description": "Manages extensions to the application and allows browsing extensions from the Ultimaker website.",
|
||||
"description": "Manages extensions to the application and allows browsing extensions from the UltiMaker website.",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -285,4 +285,33 @@ Window
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle
|
||||
{
|
||||
color: UM.Theme.getColor("main_background")
|
||||
anchors.fill: parent
|
||||
visible: !Cura.API.account.isLoggedIn && CuraApplication.isEnterprise
|
||||
|
||||
UM.Label
|
||||
{
|
||||
id: signInLabel
|
||||
anchors.centerIn: parent
|
||||
width: Math.round(UM.Theme.getSize("modal_window_minimum").width / 2.5)
|
||||
text: catalog.i18nc("@description","Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
|
||||
Cura.PrimaryButton
|
||||
{
|
||||
id: loginButton
|
||||
width: UM.Theme.getSize("account_button").width
|
||||
height: UM.Theme.getSize("account_button").height
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: signInLabel.bottom
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height * 2
|
||||
text: catalog.i18nc("@button", "Sign in")
|
||||
fixedWidthMode: true
|
||||
onClicked: Cura.API.account.login()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2021 Ultimaker B.V.
|
||||
# Copyright (c) 2023 UltiMaker
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import json
|
||||
|
@ -27,7 +27,7 @@ catalog = i18nCatalog("cura")
|
|||
|
||||
|
||||
class SliceInfo(QObject, Extension):
|
||||
"""This Extension runs in the background and sends several bits of information to the Ultimaker servers.
|
||||
"""This Extension runs in the background and sends several bits of information to the UltiMaker servers.
|
||||
|
||||
The data is only sent when the user in question gave permission to do so. All data is anonymous and
|
||||
no model files are being sent (Just a SHA256 hash of the model).
|
||||
|
@ -277,6 +277,26 @@ class SliceInfo(QObject, Extension):
|
|||
# Send the name of the output device type that is used.
|
||||
data["output_to"] = type(output_device).__name__
|
||||
|
||||
# Engine Statistics (Slicing Time, ...)
|
||||
# Call it backend-time, sice we might want to get the actual slice time from the engine itself,
|
||||
# to also identify problems in between the users pressing the button and the engine actually starting
|
||||
# (and the other way around with data that arrives back from the engine).
|
||||
time_setup = 0.0
|
||||
time_backend = 0.0
|
||||
if not print_information.preSliced:
|
||||
backend_info = self._application.getBackend().resetAndReturnLastSliceTimeStats()
|
||||
time_start_process = backend_info["time_start_process"]
|
||||
time_send_message = backend_info["time_send_message"]
|
||||
time_end_slice = backend_info["time_end_slice"]
|
||||
if time_start_process and time_send_message and time_end_slice:
|
||||
time_setup = time_send_message - time_start_process
|
||||
time_backend = time_end_slice - time_send_message
|
||||
data["engine_stats"] = {
|
||||
"is_presliced": int(print_information.preSliced),
|
||||
"time_setup": int(round(time_setup)),
|
||||
"time_backend": int(round(time_backend)),
|
||||
}
|
||||
|
||||
# Convert data to bytes
|
||||
binary_data = json.dumps(data).encode("utf-8")
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
<!-- Copyright (c) 2023 UltiMaker
|
||||
Cura is released under the terms of the LGPLv3 or higher.
|
||||
-->
|
||||
|
||||
<html>
|
||||
<body>
|
||||
<b>Cura Version:</b> 4.8<br/>
|
||||
|
@ -63,11 +67,18 @@
|
|||
|
||||
<h3>Print Times:</h3>
|
||||
<ul>
|
||||
<li>Infill: 61200 sec.</li>
|
||||
<li>Support: 25480 sec.</li>
|
||||
<li>Travel: 6224 sec.</li>
|
||||
<li>Walls: 10225 sec.</li>
|
||||
<li>Total: 103129 sec.</li>
|
||||
<li><b>Infill:</b> 61200 sec.</li>
|
||||
<li><b>Support:</b> 25480 sec.</li>
|
||||
<li><b>Travel:</b> 6224 sec.</li>
|
||||
<li><b>Walls:</b> 10225 sec.</li>
|
||||
<li><b>Total:</b> 103129 sec.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Engine Statistics:</h3>
|
||||
<ul>
|
||||
<li><b>Is Pre-Sliced:</b> no</li>
|
||||
<li><b>Pre-Process Time:</b> 7 sec.</li>
|
||||
<li><b>Slicing Time:</b> 69 sec.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "Ultimaker Network Connection",
|
||||
"name": "UltiMaker Network Connection",
|
||||
"author": "Ultimaker B.V.",
|
||||
"description": "Manages network connections to Ultimaker networked printers.",
|
||||
"description": "Manages network connections to UltiMaker networked printers.",
|
||||
"version": "2.0.0",
|
||||
"api": 8,
|
||||
"i18n-catalog": "cura"
|
||||
|
|
|
@ -16,7 +16,7 @@ class LegacyDeviceNoLongerSupportedMessage(Message):
|
|||
def __init__(self) -> None:
|
||||
super().__init__(
|
||||
text = I18N_CATALOG.i18nc("@info:status", "You are attempting to connect to a printer that is not "
|
||||
"running Ultimaker Connect. Please update the printer to the "
|
||||
"running UltiMaker Connect. Please update the printer to the "
|
||||
"latest firmware."),
|
||||
title = I18N_CATALOG.i18nc("@info:title", "Update your printer"),
|
||||
lifetime = 10,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "Ultimaker machine actions",
|
||||
"name": "UltiMaker machine actions",
|
||||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
pytest
|
||||
pyinstaller==5.6.2
|
||||
pyinstaller==5.8.0
|
||||
pyinstaller-hooks-contrib
|
||||
pyyaml
|
||||
sip==6.5.1
|
||||
|
|
162
requirements.txt
162
requirements.txt
|
@ -25,17 +25,45 @@ PyQt6-NetworkAuth-Qt6==6.2.4 \
|
|||
--hash=sha256:1363ea81e5c6ac10bfd643e41ba0d215c0d031a57ff1e5972cc4c2a918efe712 \
|
||||
--hash=sha256:8ed4e5e0eaaa42a6f91aba6745eea23fb3ffcbddc6b162016936530ed28dd0ad
|
||||
PyQt6-sip==13.2.1 \
|
||||
--hash=sha256:b7bce59900b2e0a04f70246de2ccf79ee7933036b6b9183cf039b62eeae2b858 \
|
||||
--hash=sha256:8b52d42e42e6e9f934ac7528cd154ac0210a532bb33fa1edfb4a8bbfb73ff88b \
|
||||
--hash=sha256:0314d011633bc697e99f3f9897b484720e81a5f4ba0eaa5f05c5811e2e74ea53 \
|
||||
--hash=sha256:226e9e349aa16dc1132f106ca01fa99cf7cb8e59daee29304c2fea5fa33212ec
|
||||
--hash=sha256:082a80264699d4e2e919a7de8b6662886a353863d2b30a0047fe73d42e65c98e \
|
||||
--hash=sha256:0a49f2d0bb49bc9d72665d62fb5ab6549c72dcf49e1e52dc2046edb8832a17a3 \
|
||||
--hash=sha256:0ede42e84a79871022e1a8e4d5c05f70821b2795910c4cd103e863ce62bc8d68 \
|
||||
--hash=sha256:226e9e349aa16dc1132f106ca01fa99cf7cb8e59daee29304c2fea5fa33212ec \
|
||||
--hash=sha256:43afd9c9fdbc5f6ed2e22cae0752a8b8d9545c6d85f314bd27b861e21d4a97fe \
|
||||
--hash=sha256:4b119a8fd880ece15a5bdff583edccd89dbc79d49de2e11cbbd6bba72713d1f3 \
|
||||
--hash=sha256:616b6bad827e9c6e7ce5179883ca0f44110a42dcb045344aa28a495c05e19795 \
|
||||
--hash=sha256:65f5aee6195bd0e785bd74f75ee080a5d5fb840c03210956e4ccbdde481b487c \
|
||||
--hash=sha256:8b52d42e42e6e9f934ac7528cd154ac0210a532bb33fa1edfb4a8bbfb73ff88b \
|
||||
--hash=sha256:a3d53fab72f959b45aeb954124255b585ff8d497a514a2582e0afd808fc2f3da \
|
||||
--hash=sha256:b0d92f4a21706b18ab80c088cded94cd64d32a0c48e1729a4cc53fe5ab93cc1a \
|
||||
--hash=sha256:b7bce59900b2e0a04f70246de2ccf79ee7933036b6b9183cf039b62eeae2b858 \
|
||||
--hash=sha256:c456d5ccc4478254052082e298db01bb9d0495471c1659046697bb5dc9d2506c \
|
||||
--hash=sha256:e2e6a3972169891dbc33d806f50ebf17eaa47a487ff6e4910fe2485c47cb6c2b \
|
||||
--hash=sha256:f4226d4ab239d8655f94c42b397f23e6e85b246f614ff81162ef9321e47f7619
|
||||
certifi==2021.10.8 \
|
||||
--hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \
|
||||
--hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
|
||||
cryptography==3.4.8; \
|
||||
--hash=sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14 \
|
||||
--hash=sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e \
|
||||
--hash=sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b \
|
||||
--hash=sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7 \
|
||||
--hash=sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085 \
|
||||
--hash=sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc \
|
||||
--hash=sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b
|
||||
--hash=sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d \
|
||||
--hash=sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a \
|
||||
--hash=sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498 \
|
||||
--hash=sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89 \
|
||||
--hash=sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9 \
|
||||
--hash=sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c \
|
||||
--hash=sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7 \
|
||||
--hash=sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb \
|
||||
--hash=sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14 \
|
||||
--hash=sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af \
|
||||
--hash=sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e \
|
||||
--hash=sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5 \
|
||||
--hash=sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06 \
|
||||
--hash=sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7
|
||||
zeroconf==0.31.0 \
|
||||
--hash=sha256:53a180248471c6f81bd1fffcbce03ed93d7d8eaf10905c9121ac1ea996d19844 \
|
||||
--hash=sha256:5a468da018bc3f04bbce77ae247924d802df7aeb4c291bbbb5a9616d128800b0
|
||||
|
@ -53,20 +81,69 @@ https://software.ultimaker.com/cura-binary-dependencies/numpy-1.21.5+mkl-cp310-c
|
|||
--hash=sha256:fbd5d5126b730a151134d21994a951fe28df06464e0c9a2cba2a4132e542a5fc
|
||||
numpy==1.21.5; \
|
||||
sys_platform!="win32" \
|
||||
--hash=sha256:00c9fa73a6989895b8815d98300a20ac993c49ac36c8277e8ffeaa3631c0dbbb \
|
||||
--hash=sha256:025b497014bc33fc23897859350f284323f32a2fff7654697f5a5fc2a19e9939 \
|
||||
--hash=sha256:08de8472d9f7571f9d51b27b75e827f5296295fa78817032e84464be8bb905bc \
|
||||
--hash=sha256:1964db2d4a00348b7a60ee9d013c8cb0c566644a589eaa80995126eac3b99ced \
|
||||
--hash=sha256:2a9add27d7fc0fdb572abc3b2486eb3b1395da71e0254c5552b2aad2a18b5441 \
|
||||
--hash=sha256:2d8adfca843bc46ac199a4645233f13abf2011a0b2f4affc5c37cd552626f27b \
|
||||
--hash=sha256:301e408a052fdcda5cdcf03021ebafc3c6ea093021bf9d1aa47c54d48bdad166 \
|
||||
--hash=sha256:a7e8f6216f180f3fd4efb73de5d1eaefb5f5a1ee5b645c67333033e39440e63a \
|
||||
--hash=sha256:fc7a7d7b0ed72589fd8b8486b9b42a564f10b8762be8bd4d9df94b807af4a089 \
|
||||
--hash=sha256:311283acf880cfcc20369201bd75da907909afc4666966c7895cbed6f9d2c640 \
|
||||
--hash=sha256:341dddcfe3b7b6427a28a27baa59af5ad51baa59bfec3264f1ab287aa3b30b13 \
|
||||
--hash=sha256:3a5098df115340fb17fc93867317a947e1dcd978c3888c5ddb118366095851f8 \
|
||||
--hash=sha256:3c978544be9e04ed12016dd295a74283773149b48f507d69b36f91aa90a643e5 \
|
||||
--hash=sha256:3d893b0871322eaa2f8c7072cdb552d8e2b27645b7875a70833c31e9274d4611 \
|
||||
--hash=sha256:4fe6a006557b87b352c04596a6e3f12a57d6e5f401d804947bd3188e6b0e0e76 \
|
||||
--hash=sha256:507c05c7a37b3683eb08a3ff993bd1ee1e6c752f77c2f275260533b265ecdb6c \
|
||||
--hash=sha256:58ca1d7c8aef6e996112d0ce873ac9dfa1eaf4a1196b4ff7ff73880a09923ba7 \
|
||||
--hash=sha256:61bada43d494515d5b122f4532af226fdb5ee08fe5b5918b111279843dc6836a \
|
||||
--hash=sha256:69a5a8d71c308d7ef33ef72371c2388a90e3495dbb7993430e674006f94797d5 \
|
||||
--hash=sha256:6a5928bc6241264dce5ed509e66f33676fc97f464e7a919edc672fb5532221ee \
|
||||
--hash=sha256:7b9d6b14fc9a4864b08d1ba57d732b248f0e482c7b2ff55c313137e3ed4d8449 \
|
||||
--hash=sha256:a7c4b701ca418cd39e28ec3b496e6388fe06de83f5f0cb74794fa31cfa384c02 \
|
||||
--hash=sha256:a7e8f6216f180f3fd4efb73de5d1eaefb5f5a1ee5b645c67333033e39440e63a \
|
||||
--hash=sha256:b545ebadaa2b878c8630e5bcdb97fc4096e779f335fc0f943547c1c91540c815 \
|
||||
--hash=sha256:c293d3c0321996cd8ffe84215ffe5d269fd9d1d12c6f4ffe2b597a7c30d3e593 \
|
||||
--hash=sha256:c5562bcc1a9b61960fc8950ade44d00e3de28f891af0acc96307c73613d18f6e \
|
||||
--hash=sha256:ca9c23848292c6fe0a19d212790e62f398fd9609aaa838859be8459bfbe558aa \
|
||||
--hash=sha256:cc1b30205d138d1005adb52087ff45708febbef0e420386f58664f984ef56954 \
|
||||
--hash=sha256:dbce7adeb66b895c6aaa1fad796aaefc299ced597f6fbd9ceddb0dd735245354 \
|
||||
--hash=sha256:dc4b2fb01f1b4ddbe2453468ea0719f4dbb1f5caa712c8b21bb3dd1480cd30d9 \
|
||||
--hash=sha256:6a5928bc6241264dce5ed509e66f33676fc97f464e7a919edc672fb5532221ee
|
||||
pyclipper==1.3.0.post2; \
|
||||
--hash=sha256:c096703dc32f2e4700a1f7054e8b58c29fe86212fa7a2c2adecb0102cb639fb2 \
|
||||
--hash=sha256:a1525051ced1ab74e8d32282299c24c68f3e31cd4b64e0b368720b5da65aad67 \
|
||||
--hash=sha256:5960aaa012cb925ef44ecabe69528809564a3c95ceac874d95c6600f207138d3 \
|
||||
--hash=sha256:d3954330c02a19f7566651a909ec4bc5733ba6c62a228ab26db4a90305748430 \
|
||||
--hash=sha256:5175ee50772a7dcc0feaab19ccf5b979b6066f4753edb330700231cf70d0c918 \
|
||||
--hash=sha256:19a6809d9cbd535d0fe922e9315babb8d70b5c7dcd43e0f89740d09c406b40f8 \
|
||||
--hash=sha256:5c5d50498e335d7f969ca5ad5886e77c40088521dcabab4feb2f93727140251e
|
||||
--hash=sha256:eed2afaa97ec33b4411995be12f8bdb95c87984eaa28d76cf628970c8a2d689a \
|
||||
--hash=sha256:fc7a7d7b0ed72589fd8b8486b9b42a564f10b8762be8bd4d9df94b807af4a089
|
||||
pyclipper==1.3.0.post3; \
|
||||
--hash=sha256:1408461fba4985d58589fa74c59e273e8aa91d8b55c2e9a6abf966eed7562d90 \
|
||||
--hash=sha256:1df7e4bce6ac68abfe926d319f52b749b7c9d5e0a6bd7112a0c7f2f908abecbc \
|
||||
--hash=sha256:24b6b70114941805c14a33e9378e52d24b18791f1bfc365853d5adb33425f173 \
|
||||
--hash=sha256:2b0950dada5b56a002dddccf131815a8f9b55c4df86ff6a43b7ef48a91b572aa \
|
||||
--hash=sha256:2d51757df15f1721946f39016191c7d685306fc69d8a5f2933a1d22119150a1d \
|
||||
--hash=sha256:341556b83ce2a5d4ee36e263e04751a9949e4161f60f0011f9500b845b25ce3c \
|
||||
--hash=sha256:46b3996c8dcda562c408e653ccef8efd95a7d69400f9119df2c2cb8083d36bf8 \
|
||||
--hash=sha256:5434e1e69425dc7958579b1f7bedfa8a7cce79400e1b708a42be769a165a3a2c \
|
||||
--hash=sha256:5b4e0e360ebfc25d01c7e0873b27f912d1c02d99b84393d526bc01836a5fb9f4 \
|
||||
--hash=sha256:60f20e96e9e055e9bb2e729fe6078969ce252c6b7b1b18d8d963e5343d99f99e \
|
||||
--hash=sha256:615bece709d8c304d97089a83f8ff91ca0d2646e8fe42f2637d7cdfcf99a6e4e \
|
||||
--hash=sha256:639fbc55569b94487f89261b1656e3e655d06888a582218c5432c426705d1f6f \
|
||||
--hash=sha256:6748239b89a5edd00b3ce36cb5c7a177978ff3361de861fe2cc559bb2760625d \
|
||||
--hash=sha256:679bfd1fd4595a3f58a706256dc6cc7179ee40fbeff4d134aa3163a9c87ca545 \
|
||||
--hash=sha256:6ace0de72f252e48eda28981e24142a2b02ac17eacc3d8a2baf628671dd8cc8f \
|
||||
--hash=sha256:771ba332790e88eb4aa9de2172131af25525ac23fdda789691e543962849f149 \
|
||||
--hash=sha256:8fabba875314ebc751b66e571b8b0d5319c76e22051304880a552d70db2252af \
|
||||
--hash=sha256:a050ec9df95e9611461adb7f86da4f066848c045d966c46e7b124593e6410e2a \
|
||||
--hash=sha256:ab7e2f9b655333a37002b90bea47d77ff8d1f01293798911afa7f39217f1b71d \
|
||||
--hash=sha256:b0097aef9ac8a5e10434059641fea338fb682c61993bfe65670e459ec14b4151 \
|
||||
--hash=sha256:b509cfd696962683553cd6b9fc7f0baf05bff47c09fd68b085a8aea493436267 \
|
||||
--hash=sha256:bad590e701eaef644899ce164631f83e39669796e552f17aef5a37238646b392 \
|
||||
--hash=sha256:c586ca07c1418d4f010c6bc65215c4b193211e1b95dd8a1bd312d8207c5ccf6a \
|
||||
--hash=sha256:cb5ad68b82c2aa408672444e567cea138db29790997d603525878632d61fd6ec \
|
||||
--hash=sha256:cd9f0496daa9b505902848d401bfc3ffe80ee3a6863451fc6c05ceb2a45b9d8f \
|
||||
--hash=sha256:da4d8f253dd8e152b3364902bed5e221165d3af4e71e2ae81eb9a9a9802089a2 \
|
||||
--hash=sha256:e8d77755a00566e0f0cf48da2e42e76ff93423b55880621944f950058be3fc0e \
|
||||
--hash=sha256:ebc13dbfaec1b489fc6ed92a642b8a2c7072fa2d4bc12514cc2bbeacd47c5baf \
|
||||
--hash=sha256:ed5ea68bc6f3428fbf9d98f1e72e2020d763d88053cc9a9d31b2eeb49500b26f \
|
||||
--hash=sha256:ee52b9d29512eb7b8b9faee6db3f8694eb6c8455785a5d2d561c40eca67b226f \
|
||||
--hash=sha256:f428ecdd224ec30c1a4dbdbaac44e746cbe9a05c25627b05cc7bc2dcda235a26 \
|
||||
--hash=sha256:f5f3ad171f21511813085ac549bb717bbdcc0f4da27abf6b0629438e1f23ca0b
|
||||
scipy==1.9.1 \
|
||||
--hash=sha256:c61b4a91a702e8e04aeb0bfc40460e1f17a640977c04dda8757efb0199c75332 \
|
||||
--hash=sha256:d79da472015d0120ba9b357b28a99146cd6c17b9609403164b1a8ed149b4dfc8 \
|
||||
|
@ -213,15 +290,62 @@ ifaddr==0.1.7 \
|
|||
--hash=sha256:1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94 \
|
||||
--hash=sha256:d1f603952f0a71c9ab4e705754511e4e03b02565bc4cec7188ad6415ff534cd3
|
||||
pycparser==2.20 \
|
||||
--hash=sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0 \
|
||||
--hash=sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705
|
||||
zipp==3.5.0 \
|
||||
--hash=sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3 \
|
||||
--hash=sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4
|
||||
cffi==1.15.0 \
|
||||
--hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \
|
||||
--hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \
|
||||
--hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \
|
||||
--hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2
|
||||
--hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \
|
||||
--hash=sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636 \
|
||||
--hash=sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20 \
|
||||
--hash=sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728 \
|
||||
--hash=sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27 \
|
||||
--hash=sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66 \
|
||||
--hash=sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443 \
|
||||
--hash=sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0 \
|
||||
--hash=sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7 \
|
||||
--hash=sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39 \
|
||||
--hash=sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605 \
|
||||
--hash=sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a \
|
||||
--hash=sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37 \
|
||||
--hash=sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029 \
|
||||
--hash=sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139 \
|
||||
--hash=sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc \
|
||||
--hash=sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df \
|
||||
--hash=sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14 \
|
||||
--hash=sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880 \
|
||||
--hash=sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2 \
|
||||
--hash=sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a \
|
||||
--hash=sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e \
|
||||
--hash=sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474 \
|
||||
--hash=sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024 \
|
||||
--hash=sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8 \
|
||||
--hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \
|
||||
--hash=sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e \
|
||||
--hash=sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a \
|
||||
--hash=sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e \
|
||||
--hash=sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032 \
|
||||
--hash=sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6 \
|
||||
--hash=sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e \
|
||||
--hash=sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b \
|
||||
--hash=sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e \
|
||||
--hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \
|
||||
--hash=sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962 \
|
||||
--hash=sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c \
|
||||
--hash=sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4 \
|
||||
--hash=sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55 \
|
||||
--hash=sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962 \
|
||||
--hash=sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023 \
|
||||
--hash=sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c \
|
||||
--hash=sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6 \
|
||||
--hash=sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8 \
|
||||
--hash=sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382 \
|
||||
--hash=sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7 \
|
||||
--hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \
|
||||
--hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \
|
||||
--hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796
|
||||
urllib3==1.25.9 \
|
||||
--hash=sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527 \
|
||||
--hash=sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115
|
||||
|
|
|
@ -133,7 +133,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"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 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -134,7 +134,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"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 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -121,7 +121,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"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 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -115,7 +115,6 @@
|
|||
"support_structure": { "value": "'tree'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)" },
|
||||
"support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -156,7 +156,6 @@
|
|||
"support_interface_height": { "value": "layer_height * 4" },
|
||||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||
|
|
|
@ -221,7 +221,6 @@
|
|||
"support_offset": { "value": "1.5" },
|
||||
"support_pattern": { "default_value": "zigzag" },
|
||||
"support_top_distance": { "value": "support_z_distance" },
|
||||
"support_use_towers": { "value": "True" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height" },
|
||||
|
|
|
@ -110,7 +110,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -99,7 +99,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||
|
|
|
@ -160,7 +160,6 @@
|
|||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -78,7 +78,6 @@
|
|||
"speed_z_hop": { "value": "speed_travel" },
|
||||
"support_bottom_distance": { "value": "layer_height" },
|
||||
"support_bottom_enable": { "value": false },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_wall_count": { "value": "1" },
|
||||
"support_z_distance": { "value": "layer_height" },
|
||||
"switch_extruder_retraction_amount": { "value": 10 },
|
||||
|
|
|
@ -123,11 +123,9 @@
|
|||
"support_interface_density": { "default_value": 33.333 },
|
||||
"support_interface_pattern": { "default_value": "lines" },
|
||||
"support_material_flow": { "value": "material_flow * 0.95" },
|
||||
"support_offset": { "default_value": 0.3 },
|
||||
"support_roof_pattern": { "value": "'grid'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'layer_height') + (0 if support_structure == 'tree' else 0)" },
|
||||
"support_tower_maximum_supported_diameter": { "value": "1" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_xy_distance": { "value": "machine_nozzle_size * 1.7" },
|
||||
"support_xy_distance_overhang": { "value": "machine_nozzle_size * 1.2 if support_interface_enable else machine_nozzle_size * 0.8" },
|
||||
"support_z_distance": { "value": "layer_height * 1.2 if (support_interface_enable and support_bottom_enable and layer_height < 0.16) or support_bottom_enable else layer_height" },
|
||||
|
|
|
@ -95,7 +95,6 @@
|
|||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_roof_enable": { "value": true },
|
||||
"support_type": { "value": "'everywhere'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": 0.7 },
|
||||
"support_xy_distance_overhang": { "value": 0.2 },
|
||||
"support_z_distance": { "value": 0.3 },
|
||||
|
|
|
@ -115,7 +115,6 @@
|
|||
"support_interface_enable": { "value": true },
|
||||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_roof_enable": { "value": true },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_z_distance": { "value": 0.3 },
|
||||
"top_layers": { "value": 6 },
|
||||
"top_thickness": { "value": "layer_height * top_layers" },
|
||||
|
|
|
@ -4414,13 +4414,15 @@
|
|||
"cool_min_temperature":
|
||||
{
|
||||
"label": "Small Layer Printing Temperature",
|
||||
"description": "When reducing print speeds because of the minimum layer time, the printing temperature is gradually reduced to this temperature.",
|
||||
"description": "Gradually reduce to this temperature when printing at reduced speeds because of minimum layer time.",
|
||||
"unit": "\u00b0C",
|
||||
"type": "float",
|
||||
"value": "material_print_temperature",
|
||||
"enabled": "cool_min_layer_time > 0",
|
||||
"minimum_value": "material_final_print_temperature",
|
||||
"maximum_value": "material_print_temperature",
|
||||
"minimum_value_warning": "max(material_final_print_temperature, material_initial_print_temperature)",
|
||||
"maximum_value_warning": "material_print_temperature",
|
||||
"minimum_value": "-273.15",
|
||||
"maximum_value": "365",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
}
|
||||
|
@ -4698,7 +4700,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "1 if (support_interface_pattern == 'zigzag') else 0",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
|
@ -4715,7 +4717,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "support_interface_wall_count",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -4731,7 +4733,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "support_interface_wall_count",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -4957,6 +4959,7 @@
|
|||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0.3,
|
||||
"value": "0 if support_bottom_enable else 0.3",
|
||||
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "1.0",
|
||||
|
@ -4970,10 +4973,10 @@
|
|||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 5.0,
|
||||
"limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr",
|
||||
"limit_to_extruder": "support_interface_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "10.0",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_bottom_stair_step_height > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_bottom_stair_step_min_slope":
|
||||
|
@ -4986,7 +4989,7 @@
|
|||
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0.01",
|
||||
"maximum_value": "89.99",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_bottom_stair_step_height > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_join_distance":
|
||||
|
@ -5009,7 +5012,8 @@
|
|||
"description": "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"default_value": 0.8,
|
||||
"value": "support_line_width + 0.4",
|
||||
"limit_to_extruder": "support_infill_extruder_nr",
|
||||
"minimum_value_warning": "-1 * machine_nozzle_size",
|
||||
"maximum_value_warning": "10 * machine_nozzle_size",
|
||||
|
@ -5093,7 +5097,7 @@
|
|||
"default_value": false,
|
||||
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')",
|
||||
"limit_to_extruder": "support_roof_extruder_nr",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_interface_enable",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_bottom_enable":
|
||||
|
@ -5104,7 +5108,7 @@
|
|||
"default_value": false,
|
||||
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')",
|
||||
"limit_to_extruder": "support_bottom_extruder_nr",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_interface_enable",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
|
@ -5162,7 +5166,8 @@
|
|||
"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",
|
||||
"type": "float",
|
||||
"default_value": 0.3,
|
||||
"default_value": 0.2,
|
||||
"value": "layer_height",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "support_interface_height",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
|
@ -5774,7 +5779,7 @@
|
|||
"brim_inside_margin":
|
||||
{
|
||||
"label": "Brim Inside Avoid Margin",
|
||||
"description": "If brim is only on outside then parts fully enclosed inside another part will get a brim which might overlap with the internal holes of the outer part. This setting controls how far to stay away from those internal holes. Set to a high value to prevent any brim from being generated for parts enclosed within the holes of other parts.",
|
||||
"description": "A part fully enclosed inside another part can generate an outer brim that touches the inside of the other part. This removes all brim within this distance from internal holes.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 2.5,
|
||||
|
@ -6853,7 +6858,7 @@
|
|||
"interlocking_enable":
|
||||
{
|
||||
"label": "Generate Interlocking Structure",
|
||||
"description": "Whether to generate a structure at the interface between two models of a different material in order to improve the adhesion. The structure consists of cells of horizontal beams with alternating direction which connect to each other over the Z direction in order to interlock with the beams of the other material.",
|
||||
"description": "At the locations where models touch, generate an interlocking beam structure. This improves the adhesion between models, especially models printed in different materials.",
|
||||
"type": "bool",
|
||||
"enabled": "extruders_enabled_count > 1",
|
||||
"default_value": false,
|
||||
|
@ -6864,7 +6869,7 @@
|
|||
"interlocking_beam_width":
|
||||
{
|
||||
"label": "Interlocking Beam Width",
|
||||
"description": "The width of the beams of this material in the interlocking structure.",
|
||||
"description": "The width of the interlocking structure beams.",
|
||||
"type": "float",
|
||||
"unit": "mm",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
|
@ -6879,7 +6884,7 @@
|
|||
"interlocking_orientation":
|
||||
{
|
||||
"label": "Interlocking Structure Orientation",
|
||||
"description": "The direction of the beams of the interlocking structure in the XY plane as a rotation about the Z axis.",
|
||||
"description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
|
||||
"unit": "\u00b0",
|
||||
"type": "float",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
|
@ -6893,7 +6898,7 @@
|
|||
"interlocking_beam_layer_count":
|
||||
{
|
||||
"label": "Interlocking Beam Layer Count",
|
||||
"description": "The height of the beams of the interlocking structure as measured in number of layers. Less layers is stronger, but more prone to manufacturing defects.",
|
||||
"description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
|
||||
"type": "int",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
"default_value": 2,
|
||||
|
@ -6906,7 +6911,7 @@
|
|||
"interlocking_depth":
|
||||
{
|
||||
"label": "Interlocking Depth",
|
||||
"description": "The number of cells along the depth of the interface between two models where an interlocking structure is to be generated. Less cells is better, but too little cells can cause the not to be connected properly, which reduces the adhesion performance of the interlocking structure.",
|
||||
"description": "The distance from the boundary between models to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.",
|
||||
"type": "int",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
"default_value": 2,
|
||||
|
@ -6920,7 +6925,7 @@
|
|||
"interlocking_boundary_avoidance":
|
||||
{
|
||||
"label": "Interlocking Boundary Avoidance",
|
||||
"description": "The distance close to the boundary of the print where not to generate an interlocking structure as measued in number of cells times 2. If set to a value lower than the Inerlocking Depth then the interlocking structure can become visible on the outside of the print near the interfaces where two models meet.",
|
||||
"description": "The distance from the outside of a model where interlocking structures will not be generated, measured in cells.",
|
||||
"type": "int",
|
||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||
"default_value": 2,
|
||||
|
|
|
@ -166,7 +166,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -114,7 +114,6 @@
|
|||
"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" },
|
||||
|
|
49
resources/definitions/geeetech_A10.def.json
Normal file
49
resources/definitions/geeetech_A10.def.json
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A10",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains": { "0": "geeetech_A10_1" }
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers" },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-31, 31],
|
||||
[34, 31],
|
||||
[34, -40],
|
||||
[-31, -40]
|
||||
]
|
||||
},
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 260 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A10" },
|
||||
"machine_start_gcode": { "default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home" },
|
||||
"machine_width": { "default_value": 220 },
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
|
@ -1,23 +1,32 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A10M",
|
||||
"inherits": "Geeetech_Base_Dual_Extruder",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "Geeetech_Dual_Extruder_0",
|
||||
"1": "Geeetech_Dual_Extruder_1"
|
||||
},
|
||||
"preferred_material": "Geeetech_PLA_Cyan"
|
||||
"0": "geeetech_A10M_1",
|
||||
"1": "geeetech_A10M_2"
|
||||
}
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"brim_width": { "value": 10 },
|
||||
"gantry_height": { "value": 28 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
|
||||
"machine_end_gcode": { "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84" },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -28,10 +37,16 @@
|
|||
]
|
||||
},
|
||||
"machine_height": { "default_value": 260 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A10M" },
|
||||
"machine_start_gcode": { "default_value": ";Geeetech A10M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
|
||||
"machine_start_gcode": { "default_value": ";GeeeTech A10M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script" },
|
||||
"machine_width": { "default_value": 220 },
|
||||
"prime_tower_position_x": { "value": 190 },
|
||||
"prime_tower_position_y": { "value": 160 }
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
|
@ -1,24 +1,33 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A10T",
|
||||
"inherits": "Geeetech_Base_Multi_Extruder",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "Geeetech_Multi_Extruder_0",
|
||||
"1": "Geeetech_Multi_Extruder_1",
|
||||
"2": "Geeetech_Multi_Extruder_2"
|
||||
},
|
||||
"preferred_material": "Geeetech_PLA_Magenta"
|
||||
"0": "geeetech_A10T_1",
|
||||
"1": "geeetech_A10T_2",
|
||||
"2": "geeetech_A10T_3"
|
||||
}
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"brim_width": { "value": 10 },
|
||||
"gantry_height": { "value": 28 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 260 },
|
||||
"machine_end_gcode": { "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84" },
|
||||
"machine_extruder_count": { "default_value": 3 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -28,11 +37,17 @@
|
|||
[-31, -40]
|
||||
]
|
||||
},
|
||||
"machine_height": { "default_value": 260 },
|
||||
"machine_height": { "default_value": 220 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A10T" },
|
||||
"machine_start_gcode": { "default_value": ";Geeetech A10T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
|
||||
"machine_start_gcode": { "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X180 E40\nG1 F1200 Z2\nG92 E0\nG28" },
|
||||
"machine_width": { "default_value": 220 },
|
||||
"prime_tower_position_x": { "value": 190 },
|
||||
"prime_tower_position_y": { "value": 160 }
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
|
@ -1,17 +1,28 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A20",
|
||||
"inherits": "Geeetech_Base_Single_Extruder",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"machine_extruder_trains": { "0": "Geeetech_Single_Extruder" }
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains": { "0": "geeetech_A20_1" }
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"gantry_height": { "value": 35 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 250 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
|
||||
"machine_end_gcode": { "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84" },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -22,8 +33,16 @@
|
|||
]
|
||||
},
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A20" },
|
||||
"machine_start_gcode": { "default_value": ";Geeetech A20 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
|
||||
"machine_width": { "default_value": 250 }
|
||||
"machine_start_gcode": { "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28" },
|
||||
"machine_width": { "default_value": 250 },
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
|
@ -1,23 +1,32 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A20M",
|
||||
"inherits": "Geeetech_Base_Dual_Extruder",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "Geeetech_Dual_Extruder_0",
|
||||
"1": "Geeetech_Dual_Extruder_1"
|
||||
},
|
||||
"preferred_material": "Geeetech_PLA_Yellow"
|
||||
"0": "geeetech_A20M_1",
|
||||
"1": "geeetech_A20M_2"
|
||||
}
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"brim_width": { "value": 10 },
|
||||
"gantry_height": { "value": 35 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 250 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
|
||||
"machine_end_gcode": { "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84" },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -28,10 +37,16 @@
|
|||
]
|
||||
},
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A20M" },
|
||||
"machine_start_gcode": { "default_value": ";Geeetech A20M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
|
||||
"machine_start_gcode": { "default_value": ";GeeeTech A20M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script" },
|
||||
"machine_width": { "default_value": 250 },
|
||||
"prime_tower_position_x": { "value": 220 },
|
||||
"prime_tower_position_y": { "value": 190 }
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
|
@ -1,24 +1,33 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A20T",
|
||||
"inherits": "Geeetech_Base_Multi_Extruder",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "Geeetech_Multi_Extruder_0",
|
||||
"1": "Geeetech_Multi_Extruder_1",
|
||||
"2": "Geeetech_Multi_Extruder_2"
|
||||
},
|
||||
"preferred_material": "Geeetech_PLA_Red"
|
||||
"0": "geeetech_A20T_1",
|
||||
"1": "geeetech_A20T_2",
|
||||
"2": "geeetech_A20T_3"
|
||||
}
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"brim_width": { "value": 10 },
|
||||
"gantry_height": { "value": 35 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 250 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
|
||||
"machine_end_gcode": { "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84" },
|
||||
"machine_extruder_count": { "default_value": 3 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
|
@ -29,10 +38,16 @@
|
|||
]
|
||||
},
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech A20T" },
|
||||
"machine_start_gcode": { "default_value": ";Geeetech A20T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
|
||||
"machine_start_gcode": { "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28" },
|
||||
"machine_width": { "default_value": 250 },
|
||||
"prime_tower_position_x": { "value": 220 },
|
||||
"prime_tower_position_y": { "value": 190 }
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
49
resources/definitions/geeetech_Mizar_S.def.json
Normal file
49
resources/definitions/geeetech_Mizar_S.def.json
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech Mizar_S (legacy)",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "Amit L",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains": { "0": "geeetech_Mizar_S_1" }
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "28" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 255 },
|
||||
"machine_end_gcode": { "default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers" },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-31, 31],
|
||||
[34, 31],
|
||||
[34, -40],
|
||||
[-31, -40]
|
||||
]
|
||||
},
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 260 },
|
||||
"machine_max_acceleration_z": { "default_value": 500 },
|
||||
"machine_max_feedrate_e": { "default_value": 120 },
|
||||
"machine_max_feedrate_z": { "default_value": 12 },
|
||||
"machine_max_jerk_e": { "default_value": 2.5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 0.2 },
|
||||
"machine_name": { "default_value": "Geeetech Mizar_S (legacy)" },
|
||||
"machine_start_gcode": { "default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home" },
|
||||
"machine_width": { "default_value": 255 },
|
||||
"retraction_amount": { "default_value": 0.8 },
|
||||
"retraction_speed": { "default_value": 35 }
|
||||
}
|
||||
}
|
56
resources/definitions/geeetech_a30.def.json
Normal file
56
resources/definitions/geeetech_a30.def.json
Normal file
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Geeetech A30",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "William & Cataldo URSO",
|
||||
"manufacturer": "Geeetech",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains": { "0": "geeetech_a30_extruder_0" },
|
||||
"preferred_quality_type": "draft"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"gantry_height": { "value": "55" },
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"machine_acceleration": { "default_value": 2000 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_depth": { "default_value": 320 },
|
||||
"machine_end_gcode": { "default_value": "M104 S0;Cooling the heat end\nM140 S0;Cooling the heat bed\nG92 E1\nG1 E-1 F300\nG28 X0 Y0;Home X axis and Y axis\nM84" },
|
||||
"machine_gcode_flavor": { "default_value": "Repetier" },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value": [
|
||||
[-75, 35],
|
||||
[18, 35],
|
||||
[18, -18],
|
||||
[-75, -18]
|
||||
]
|
||||
},
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_height": { "default_value": 420 },
|
||||
"machine_max_acceleration_e": { "default_value": 10000 },
|
||||
"machine_max_acceleration_x": { "default_value": 2000 },
|
||||
"machine_max_acceleration_y": { "default_value": 2000 },
|
||||
"machine_max_acceleration_z": { "default_value": 100 },
|
||||
"machine_max_feedrate_e": { "default_value": 50 },
|
||||
"machine_max_feedrate_x": { "default_value": 300 },
|
||||
"machine_max_feedrate_y": { "default_value": 300 },
|
||||
"machine_max_feedrate_z": { "default_value": 7 },
|
||||
"machine_max_jerk_e": { "default_value": 5 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 1 },
|
||||
"machine_name": { "default_value": "Geeetech A30" },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"machine_start_gcode": { "default_value": "G28 ;Home\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG1 Z15.0 F6000 ;Move the platform down 15mm\nG92 E0\nG1 F200 E3\nG92 E0" },
|
||||
"machine_width": { "default_value": 320 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"retraction_amount": { "default_value": 2 },
|
||||
"retraction_speed": { "default_value": 25 }
|
||||
}
|
||||
}
|
|
@ -316,7 +316,6 @@
|
|||
"support_join_distance": { "value": 5.0 },
|
||||
"support_offset": { "value": 3.0 },
|
||||
"support_tree_angle": { "value": 60 },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_z_distance": { "value": "layer_height if (2*layer_height > 0.8*machine_nozzle_size) else (2*layer_height)" },
|
||||
"top_bottom_pattern": { "value": "'zigzag'" },
|
||||
|
|
|
@ -226,7 +226,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -90,7 +90,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -90,7 +90,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -142,7 +142,6 @@
|
|||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"support_angle": { "value": "45" },
|
||||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_use_towers": { "value": "False" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "0" },
|
||||
|
|
|
@ -111,7 +111,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
"speed_wall_x": { "value": 32 },
|
||||
"support_infill_rate": { "value": 5 },
|
||||
"support_pattern": { "default_value": "lines" },
|
||||
"support_use_towers": { "value": false },
|
||||
"switch_extruder_retraction_amount": { "value": 100 },
|
||||
"switch_extruder_retraction_speeds": { "value": 60 },
|
||||
"wall_overhang_speed_factor": { "value": 50 },
|
||||
|
|
|
@ -124,7 +124,6 @@
|
|||
"support_tower_diameter": { "value": 3 },
|
||||
"support_tower_roof_angle": { "value": "65" },
|
||||
"support_type": { "value": "'everywhere'" },
|
||||
"support_use_towers": { "value": true },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": 0.7 },
|
||||
"support_xy_distance_overhang": { "value": 0.2 },
|
||||
|
|
|
@ -162,7 +162,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -132,10 +132,8 @@
|
|||
"support_interface_enable": { "default_value": true },
|
||||
"support_interface_height": { "value": "layer_height * 4" },
|
||||
"support_interface_pattern": { "default_value": "grid" },
|
||||
"support_interface_skip_height": { "default_value": 0.24 },
|
||||
"support_pattern": { "default_value": "zigzag" },
|
||||
"support_type": { "default_value": "buildplate" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
"support_interface_density": { "value": 40 },
|
||||
"support_interface_enable": { "value": true },
|
||||
"support_interface_height": { "value": "layer_height * 3" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.2 else layer_height * 2" },
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
"support_interface_density": { "value": 40 },
|
||||
"support_interface_enable": { "value": true },
|
||||
"support_interface_height": { "value": "layer_height * 3" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.2 else layer_height * 2" },
|
||||
|
|
|
@ -228,7 +228,6 @@
|
|||
"support_interface_material_flow": { "value": "99" },
|
||||
"support_line_distance": { "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))" },
|
||||
"support_material_flow": { "value": "98" },
|
||||
"support_offset": { "default_value": 0.2 },
|
||||
"support_roof_density": { "value": "70" },
|
||||
"support_roof_extruder_nr": { "value": "0" },
|
||||
"support_roof_height": { "value": "0.4" },
|
||||
|
@ -238,7 +237,6 @@
|
|||
"support_skip_zag_per_mm": { "default_value": 10 },
|
||||
"support_top_distance": { "value": "0.2" },
|
||||
"support_tree_collision_resolution": { "value": "0.2" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_xy_distance": { "default_value": 0.6 },
|
||||
"support_xy_distance_overhang": { "value": "0.5" },
|
||||
"support_z_distance": { "default_value": 0.2 },
|
||||
|
|
|
@ -277,7 +277,6 @@
|
|||
"maximum_value_warning": "machine_nozzle_size*1.5",
|
||||
"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')"
|
||||
},
|
||||
"support_use_towers": { "default_value": true },
|
||||
"support_xy_distance": { "value": "line_width * 1.7" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance":
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -113,7 +113,6 @@
|
|||
"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": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 3" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -70,7 +70,6 @@
|
|||
"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": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
"cool_min_layer_time": { "value": 6 },
|
||||
"cool_min_layer_time_fan_speed_max": { "value": "cool_min_layer_time + 5" },
|
||||
"cool_min_speed": { "value": "round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5)" },
|
||||
"cool_min_temperature": { "value": "material_print_temperature - 15" },
|
||||
"cool_min_temperature": { "value": "max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15])" },
|
||||
"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" },
|
||||
|
@ -87,7 +87,6 @@
|
|||
},
|
||||
"meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" },
|
||||
"meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },
|
||||
"minimum_support_area": { "value": "2" },
|
||||
"raft_base_speed": { "value": "raft_speed" },
|
||||
"raft_base_thickness": { "value": "min(machine_nozzle_size * 0.75, 0.3)" },
|
||||
"raft_interface_fan_speed": { "value": "(raft_base_fan_speed + raft_surface_fan_speed) / 2" },
|
||||
|
@ -123,12 +122,10 @@
|
|||
"support_interface_material_flow": { "value": "skin_material_flow" },
|
||||
"support_interface_offset": { "value": "support_offset" },
|
||||
"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": "0.9 if support_interface_enable else 0" },
|
||||
"support_tower_maximum_supported_diameter": { "value": "support_tower_diameter" },
|
||||
"support_tower_roof_angle": { "value": "0 if support_interface_enable else 65" },
|
||||
"support_wall_count": { "value": "1 if support_structure == 'tree' else 0" },
|
||||
"support_xy_distance": { "value": "1" },
|
||||
"support_xy_distance_overhang": { "value": "0.2" },
|
||||
"support_z_distance": { "value": "0" },
|
||||
"top_layers": { "value": "math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))" },
|
||||
|
|
|
@ -101,7 +101,6 @@
|
|||
"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": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -196,7 +196,7 @@
|
|||
"wall_line_width": { "value": "machine_nozzle_size" },
|
||||
"wall_overhang_angle": { "default_value": 75 },
|
||||
"wall_overhang_speed_factor": { "default_value": 50 },
|
||||
"xy_offset_layer_0": { "value": 0.3 },
|
||||
"xy_offset_layer_0": { "value": -0.3 },
|
||||
"z_seam_type": { "value": "'back'" },
|
||||
"zig_zaggify_infill": { "value": true }
|
||||
}
|
||||
|
|
|
@ -262,7 +262,6 @@
|
|||
"support_fan_enable": { "value": true },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_supported_skin_fan_speed": { "value": 100 },
|
||||
"support_use_towers": { "value": true },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
|
||||
|
|
20
resources/extruders/geeetech_A10M_1.def.json
Normal file
20
resources/extruders/geeetech_A10M_1.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10M",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 0,
|
||||
"maximum_value": "1"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A10M_2.def.json
Normal file
20
resources/extruders/geeetech_A10M_2.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10M",
|
||||
"position": "1"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 1,
|
||||
"maximum_value": "1"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A10T_1.def.json
Normal file
20
resources/extruders/geeetech_A10T_1.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10T",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A10T_2.def.json
Normal file
20
resources/extruders/geeetech_A10T_2.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10T",
|
||||
"position": "1"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 1,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A10T_3.def.json
Normal file
20
resources/extruders/geeetech_A10T_3.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 3",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10T",
|
||||
"position": "2"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 2,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
16
resources/extruders/geeetech_A10_1.def.json
Normal file
16
resources/extruders/geeetech_A10_1.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A10",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A20M_1.def.json
Normal file
20
resources/extruders/geeetech_A20M_1.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A20M",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 0,
|
||||
"maximum_value": "1"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A20M_2.def.json
Normal file
20
resources/extruders/geeetech_A20M_2.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A20M",
|
||||
"position": "1"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 1,
|
||||
"maximum_value": "1"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A20T_1.def.json
Normal file
20
resources/extruders/geeetech_A20T_1.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A20T",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 0,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A20T_2.def.json
Normal file
20
resources/extruders/geeetech_A20T_2.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A20T",
|
||||
"position": "1"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 1,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
20
resources/extruders/geeetech_A20T_3.def.json
Normal file
20
resources/extruders/geeetech_A20T_3.def.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 3",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_A20T",
|
||||
"position": "2"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr":
|
||||
{
|
||||
"default_value": 2,
|
||||
"maximum_value": "2"
|
||||
},
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
16
resources/extruders/geeetech_Mizar_S_1.def.json
Normal file
16
resources/extruders/geeetech_Mizar_S_1.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_Mizar_S",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
16
resources/extruders/geeetech_a30_extruder_0.def.json
Normal file
16
resources/extruders/geeetech_a30_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata":
|
||||
{
|
||||
"machine": "geeetech_a30",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides":
|
||||
{
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Cura 5.1\n"
|
||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2022-09-27 14:50+0000\n"
|
||||
"POT-Creation-Date: 2023-03-08 09:03+0000\n"
|
||||
"PO-Revision-Date: 2020-02-20 17:30+0100\n"
|
||||
"Last-Translator: DenyCZ <www.github.com/DenyCZ>\n"
|
||||
"Language-Team: DenyCZ <www.github.com/DenyCZ>\n"
|
||||
|
@ -17,212 +17,212 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr "Adheze"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr "Nastavuje průměr použitého vlákna filamentu. Srovnejte tuto hodnotu s průměrem použitého vlákna."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr "Adheze topné podložky"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr "Průměr"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr "Ukončete g-kód, který se má provést při odpojení od tohoto extrudéru."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr "Extruder"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr "Ukončující G kód extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr "Absolutní finální pozice extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr "Konečná pozice X extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr "Konečná pozice Y extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr "Primární pozice extruderu X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr "Primární pozice extruderu Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr "První Z pozice extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr "Chladič extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr "Počáteční G kód extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr "Absolutní počáteční pozice extruderu"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr "Počáteční pozice extruderu X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr "Počáteční pozice extruderu Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings label"
|
||||
msgid "Machine"
|
||||
msgstr "Zařízení"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings description"
|
||||
msgid "Machine specific settings"
|
||||
msgstr "Specifické nastavení pro zařízení"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Koncovou polohu extruderu udělejte absolutně, nikoliv relativně k poslednímu známému umístění hlavy."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Udělejte počáteční pozici extrudéru absolutně, nikoli relativně k poslednímu známému umístění hlavy."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr "Materiál"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr "Materiál"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr "Průměr trysky"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr "ID trysky"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr "X offset trysky"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr "Y offset trysky"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr "Spusťte g-kód, který se má provést při přepnutí na tento extrudér."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Souřadnice X polohy, ve které tryska naplní tlak na začátku tisku."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Souřadnice Y polohy, ve které tryska naplní tlak na začátku tisku."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Souřadnice Z pozice, ve které tryska naplní tlak na začátku tisku."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr description"
|
||||
msgid "The extruder train used for printing. This is used in multi-extrusion."
|
||||
msgstr "Vytlačovací stroj byl použit pro tisknutí. Toto je používáno při vícenásobné extruzi."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
msgstr "Vnitřní průměr trysky. Změňte toto nastavení pokud používáte nestandardní velikost trysky."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
msgstr "ID trysky pro vytlačovací stroj, např. \"AA 0.4\" nebo \"BB 0.8\"."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number description"
|
||||
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
|
||||
msgstr "Číslo ventilátoru chlazení tisku přidruženého k tomuto extrudéru. Tuto změnu změňte pouze z výchozí hodnoty 0, pokud máte pro každý extrudér jiný ventilátor chlazení tisku."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x description"
|
||||
msgid "The x-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Souřadnice x koncové polohy při vypnutí extrudéru."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
msgstr "X-ová souřadnice offsetu trysky."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Souřadnice x počáteční pozice při zapnutí extrudéru."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y description"
|
||||
msgid "The y-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Souřadnice y koncové polohy při vypnutí extrudéru."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y description"
|
||||
msgid "The y-coordinate of the offset of the nozzle."
|
||||
msgstr "Y-ová souřadnice offsetu trysky."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Souřadnice y počáteční pozice při zapnutí extrudéru."
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2022-09-27 14:50+0000\n"
|
||||
"POT-Creation-Date: 2023-03-08 09:03+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
|
@ -12,212 +12,212 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr "Haftung"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr "Der Durchmesser des verwendeten Filaments wird angepasst. Stellen Sie hier den Durchmesser des verwendeten Filaments ein."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr "Druckplattenhaftung"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr "Durchmesser"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr "Auszuführenden G-Code beim Umschalten von diesem Extruder beenden."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr "Extruder"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr "G-Code Extruder-Ende"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr "Absolute Extruder-Endposition"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr "Extruder-Endposition X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr "Extruder-Endposition Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr "X-Position Extruder-Einzug"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr "Y-Position Extruder-Einzug"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr "Z-Position Extruder-Einzug"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr "Drucklüfter Extruder"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr "G-Code Extruder-Start"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr "Absolute Startposition des Extruders"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr "X-Position Extruder-Start"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr "Y-Position Extruder-Start"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings label"
|
||||
msgid "Machine"
|
||||
msgstr "Gerät"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings description"
|
||||
msgid "Machine specific settings"
|
||||
msgstr "Gerätespezifische Einstellungen"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Bevorzugen Sie eine absolute Endposition des Extruders anstelle einer relativen Position zur zuletzt bekannten Kopfposition."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Bevorzugen Sie eine absolute Startposition des Extruders anstelle einer relativen Position zur zuletzt bekannten Kopfposition."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr "Düsendurchmesser"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr "Düsen-ID"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr "X-Versatz Düse"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr "Y-Versatz Düse"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr "Auszuführenden G-Code beim Umschalten auf diesen Extruder starten."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Die X-Koordinate der Position, an der die Düse am Druckbeginn einzieht."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Die Y-Koordinate der Position, an der die Düse am Druckbeginn einzieht."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Die Z-Koordinate der Position, an der die Düse am Druckbeginn einzieht."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr description"
|
||||
msgid "The extruder train used for printing. This is used in multi-extrusion."
|
||||
msgstr "Die für das Drucken verwendete Extruder-Einheit. Diese wird für die Mehrfach-Extrusion benutzt."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
msgstr "Der Innendurchmesser der Düse. Verwenden Sie diese Einstellung, wenn Sie eine Düse einer Nicht-Standardgröße verwenden."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
msgstr "Der Düsen-ID für eine Extruder-Einheit, z. B. „AA 0,4“ und „BB 0,8“."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number description"
|
||||
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
|
||||
msgstr "Die Anzahl der Drucklüfter für diesen Extruder. Nur vom Standardwert 0 ändern, wenn Sie für jeden Extruder einen anderen Drucklüfter verwenden."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x description"
|
||||
msgid "The x-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Die X-Koordinate der Endposition beim Ausschalten des Extruders."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
msgstr "Die X-Koordinate des Düsenversatzes."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Die X-Koordinate der Startposition beim Einschalten des Extruders."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y description"
|
||||
msgid "The y-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Die Y-Koordinate der Endposition beim Ausschalten des Extruders."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y description"
|
||||
msgid "The y-coordinate of the offset of the nozzle."
|
||||
msgstr "Die Y-Koordinate des Düsenversatzes."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Die Y-Koordinate der Startposition beim Einschalten des Extruders."
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2022-09-27 14:50+0000\n"
|
||||
"POT-Creation-Date: 2023-03-08 09:03+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
|
@ -12,212 +12,212 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr "Adherencia"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr "Ajusta el diámetro del filamento utilizado. Este valor debe coincidir con el diámetro del filamento utilizado."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr "Adherencia de la placa de impresión"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr "Diámetro"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr "Finalizar GCode para ejecutarlo al cambiar desde este extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr "Extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr "GCode final del extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr "Posición final absoluta del extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr "Posición de fin del extrusor sobre el eje X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr "Posición de fin del extrusor sobre el eje Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr "Posición de preparación del extrusor sobre el eje X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr "Posición de preparación del extrusor sobre el eje Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr "Posición de preparación del extrusor sobre el eje Z"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr "Ventilador de refrigeración de impresión del extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr "GCode inicial del extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr "Posición de inicio absoluta del extrusor"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr "Posición de inicio del extrusor sobre el eje X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr "Posición de inicio del extrusor sobre el eje Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings label"
|
||||
msgid "Machine"
|
||||
msgstr "Máquina"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings description"
|
||||
msgid "Machine specific settings"
|
||||
msgstr "Ajustes específicos de la máquina"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "La posición final del extrusor se considera absoluta, en lugar de relativa a la última ubicación conocida del cabezal."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "El extrusor se coloca en la posición de inicio absoluta según la última ubicación conocida del cabezal."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr "Material"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr "Diámetro de la tobera"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr "Id. de la tobera"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr "Desplazamiento de la tobera sobre el eje X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr "Desplazamiento de la tobera sobre el eje Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr "Iniciar GCode para ejecutarlo al cambiar a este extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Coordenada X de la posición en la que la tobera se coloca al inicio de la impresión."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Coordenada Y de la posición en la que la tobera se coloca al inicio de la impresión."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Coordenada Z de la posición en la que la tobera queda preparada al inicio de la impresión."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr description"
|
||||
msgid "The extruder train used for printing. This is used in multi-extrusion."
|
||||
msgstr "El tren extrusor que se utiliza para imprimir. Se emplea en la extrusión múltiple."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
msgstr "Diámetro interior de la tobera. Cambie este ajuste cuando utilice un tamaño de tobera no estándar."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
msgstr "Id. de la tobera de un tren extrusor, como \"AA 0.4\" y \"BB 0.8\"."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number description"
|
||||
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
|
||||
msgstr "Número del ventilador de refrigeración de impresión asociado al extrusor. Modifique el valor predeterminado 0 solo cuando disponga de un ventilador de refrigeración de impresión diferente para cada extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x description"
|
||||
msgid "The x-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Coordenada X de la posición de fin cuando se apaga el extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
msgstr "Coordenada X del desplazamiento de la tobera."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Coordenada X de la posición de inicio cuando se enciende el extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y description"
|
||||
msgid "The y-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Coordenada Y de la posición de fin cuando se apaga el extrusor."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y description"
|
||||
msgid "The y-coordinate of the offset of the nozzle."
|
||||
msgstr "Coordenada Y del desplazamiento de la tobera."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Coordenada Y de la posición de inicio cuando se enciende el extrusor."
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,223 +1,228 @@
|
|||
#, fuzzy
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2022-09-27 14:50+0000\n"
|
||||
"POT-Creation-Date: 2023-03-08 09:03+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings label"
|
||||
msgid "Machine"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings description"
|
||||
msgid "Machine specific settings"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr description"
|
||||
msgid "The extruder train used for printing. This is used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number description"
|
||||
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x description"
|
||||
msgid "The x-coordinate of the ending position when turning the extruder off."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y description"
|
||||
msgid "The y-coordinate of the ending position when turning the extruder off."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y description"
|
||||
msgid "The y-coordinate of the offset of the nozzle."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr ""
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Cura 5.1\n"
|
||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2022-09-27 14:50+0000\n"
|
||||
"POT-Creation-Date: 2023-03-08 09:03+0000\n"
|
||||
"PO-Revision-Date: 2022-07-15 11:17+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
|
@ -16,212 +16,212 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 3.1.1\n"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion description"
|
||||
msgid "Adhesion"
|
||||
msgstr "Tarttuvuus"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter description"
|
||||
msgid "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "platform_adhesion label"
|
||||
msgid "Build Plate Adhesion"
|
||||
msgstr "Alustan tarttuvuus"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material_diameter label"
|
||||
msgid "Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code description"
|
||||
msgid "End g-code to execute when switching away from this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr label"
|
||||
msgid "Extruder"
|
||||
msgstr "Suulake"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_code label"
|
||||
msgid "Extruder End G-Code"
|
||||
msgstr "Suulakkeen lopetus-GCode"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs label"
|
||||
msgid "Extruder End Position Absolute"
|
||||
msgstr "Suulakkeen lopetussijainti absoluuttinen"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x label"
|
||||
msgid "Extruder End Position X"
|
||||
msgstr "Suulakkeen lopetussijainti X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y label"
|
||||
msgid "Extruder End Position Y"
|
||||
msgstr "Suulakkeen lopetussijainti Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x label"
|
||||
msgid "Extruder Prime X Position"
|
||||
msgstr "Suulakkeen esitäytön X-sijainti"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y label"
|
||||
msgid "Extruder Prime Y Position"
|
||||
msgstr "Suulakkeen esitäytön Y-sijainti"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z label"
|
||||
msgid "Extruder Prime Z Position"
|
||||
msgstr "Suulakkeen esitäytön Z-sijainti"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number label"
|
||||
msgid "Extruder Print Cooling Fan"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code label"
|
||||
msgid "Extruder Start G-Code"
|
||||
msgstr "Suulakkeen aloitus-GCode"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs label"
|
||||
msgid "Extruder Start Position Absolute"
|
||||
msgstr "Suulakkeen aloitussijainti absoluuttinen"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x label"
|
||||
msgid "Extruder Start Position X"
|
||||
msgstr "Suulakkeen aloitussijainti X"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y label"
|
||||
msgid "Extruder Start Position Y"
|
||||
msgstr "Suulakkeen aloitussijainti Y"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings label"
|
||||
msgid "Machine"
|
||||
msgstr "Laite"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_settings description"
|
||||
msgid "Machine specific settings"
|
||||
msgstr "Laitekohtaiset asetukset"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_abs description"
|
||||
msgid "Make the extruder ending position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Tekee suulakkeen lopetussijainnista absoluuttisen eikä suhteellisen viimeksi tunnettuun pään sijaintiin nähden."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_abs description"
|
||||
msgid "Make the extruder starting position absolute rather than relative to the last-known location of the head."
|
||||
msgstr "Tekee suulakkeen aloitussijainnista absoluuttisen eikä suhteellisen viimeksi tunnettuun pään sijaintiin nähden."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material description"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "material label"
|
||||
msgid "Material"
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size label"
|
||||
msgid "Nozzle Diameter"
|
||||
msgstr "Suuttimen halkaisija"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id label"
|
||||
msgid "Nozzle ID"
|
||||
msgstr "Suuttimen tunnus"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x label"
|
||||
msgid "Nozzle X Offset"
|
||||
msgstr "Suuttimen X-siirtymä"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y label"
|
||||
msgid "Nozzle Y Offset"
|
||||
msgstr "Suuttimen Y-siirtymä"
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_code description"
|
||||
msgid "Start g-code to execute when switching to this extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_x description"
|
||||
msgid "The X coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "X-koordinaatti sijainnille, jossa suutin esitäytetään tulostusta aloitettaessa."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_y description"
|
||||
msgid "The Y coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Y-koordinaatti sijainnille, jossa suutin esitäytetään tulostusta aloitettaessa."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_prime_pos_z description"
|
||||
msgid "The Z coordinate of the position where the nozzle primes at the start of printing."
|
||||
msgstr "Z-koordinaatti sijainnille, jossa suutin esitäytetään tulostusta aloitettaessa."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "extruder_nr description"
|
||||
msgid "The extruder train used for printing. This is used in multi-extrusion."
|
||||
msgstr "Tulostukseen käytettävä suulakeryhmä. Tätä käytetään monipursotuksessa."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_size description"
|
||||
msgid "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size."
|
||||
msgstr "Suuttimen sisähalkaisija. Muuta tätä asetusta, kun käytössä on muu kuin vakiokokoinen suutin."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_id description"
|
||||
msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"."
|
||||
msgstr "Suulakeryhmän suulakkeen tunnus, kuten \"AA 0.4\" ja \"BB 0.8\"."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_cooling_fan_number description"
|
||||
msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder."
|
||||
msgstr ""
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_x description"
|
||||
msgid "The x-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Lopetussijainnin X-koordinaatti, kun suulake poistetaan käytöstä."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_x description"
|
||||
msgid "The x-coordinate of the offset of the nozzle."
|
||||
msgstr "Suuttimen siirtymän X-koordinaatti."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_x description"
|
||||
msgid "The x-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Aloitussijainnin X-koordinaatti suulaketta käynnistettäessä."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_end_pos_y description"
|
||||
msgid "The y-coordinate of the ending position when turning the extruder off."
|
||||
msgstr "Lopetussijainnin Y-koordinaatti, kun suulake poistetaan käytöstä."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_nozzle_offset_y description"
|
||||
msgid "The y-coordinate of the offset of the nozzle."
|
||||
msgstr "Suuttimen siirtymän Y-koordinaatti."
|
||||
|
||||
#: /fdmextruder.def.json
|
||||
#: fdmextruder.def.json
|
||||
msgctxt "machine_extruder_start_pos_y description"
|
||||
msgid "The y-coordinate of the starting position when turning the extruder on."
|
||||
msgstr "Aloitussijainnin Y-koordinaatti suulaketta käynnistettäessä."
|
||||
|
|
File diff suppressed because it is too large
Load diff
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