mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Merge branch 'main' into CURA-10317_other_inconsitent_material_profiles_in_internal_builds
This commit is contained in:
commit
b88576bd25
240 changed files with 19171 additions and 30390 deletions
40
.github/workflows/conan-package-create.yml
vendored
40
.github/workflows/conan-package-create.yml
vendored
|
@ -145,48 +145,10 @@ jobs:
|
||||||
if: ${{ inputs.conan_config_branch == '' }}
|
if: ${{ inputs.conan_config_branch == '' }}
|
||||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||||
|
|
||||||
- name: Create the 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
|
- name: Create the Packages
|
||||||
if: ${{ ! inputs.build_info }}
|
|
||||||
run: conan install ${{ inputs.recipe_id_full }} --build=missing --update
|
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)
|
- name: Upload the Package(s)
|
||||||
if: always()
|
if: always()
|
||||||
run: conan upload "*" -r cura --all -c
|
|
||||||
|
|
||||||
- name: Upload the build info
|
|
||||||
if: ${{ inputs.build_info }}
|
|
||||||
run: |
|
run: |
|
||||||
conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }}
|
conan upload ${{ inputs.recipe_id_full }} -r cura --all -c
|
||||||
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
|
|
||||||
|
|
45
.github/workflows/conan-package.yml
vendored
45
.github/workflows/conan-package.yml
vendored
|
@ -75,28 +75,22 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Cache Conan data
|
||||||
|
id: cache-conan
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.conan
|
||||||
|
key: ${{ runner.os }}-conan
|
||||||
|
|
||||||
- name: Setup Python and pip
|
- name: Setup Python and pip
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.10.x'
|
python-version: '3.11.x'
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
cache-dependency-path: .github/workflows/requirements-conan-package.txt
|
cache-dependency-path: .github/workflows/requirements-conan-package.txt
|
||||||
|
|
||||||
- name: Install Python requirements for runner
|
- name: Install Python requirements for runner
|
||||||
run: pip install -r https://raw.githubusercontent.com/Ultimaker/Cura/main/.github/workflows/requirements-conan-package.txt
|
run: pip install -r .github/workflows/requirements-conan-package.txt
|
||||||
# Note the runner requirements are always installed from the main branch in the Ultimaker/Cura repo
|
|
||||||
|
|
||||||
- name: Use Conan download cache (Bash)
|
|
||||||
if: ${{ runner.os != 'Windows' }}
|
|
||||||
run: conan config set storage.download_cache="$HOME/.conan/conan_download_cache"
|
|
||||||
|
|
||||||
- name: Cache Conan local repository packages (Bash)
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
$HOME/.conan/data
|
|
||||||
$HOME/.conan/conan_download_cache
|
|
||||||
key: conan-ubuntu-${{ runner.arch }}-create-cache
|
|
||||||
|
|
||||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
# 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.
|
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||||
|
@ -108,38 +102,29 @@ jobs:
|
||||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt upgrade
|
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 -y
|
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
|
||||||
|
|
||||||
- name: Install GCC-12
|
|
||||||
run: |
|
|
||||||
sudo apt install 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/gcc gcc /usr/bin/gcc-12 12
|
||||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
|
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
|
||||||
|
|
||||||
- name: Create the default Conan profile
|
- name: Create the default Conan profile
|
||||||
run: conan profile new default --detect
|
run: conan profile new default --detect --force
|
||||||
|
|
||||||
- name: Get Conan configuration
|
- name: Get Conan configuration
|
||||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||||
|
|
||||||
- name: Create the Packages using lockfile
|
- 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
|
run: conan create . ${{ needs.conan-recipe-version.outputs.recipe_id_full }} --build=missing --update -o ${{ needs.conan-recipe-version.outputs.project_name }}:devtools=True
|
||||||
|
|
||||||
- name: Remove the latest alias
|
|
||||||
if: ${{ needs.conan-recipe-version.outputs.recipe_id_latest != '' }}
|
|
||||||
run: |
|
|
||||||
conan remove ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} -r cura -f || true
|
|
||||||
conan remove ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} -r cura-ce -f || true
|
|
||||||
|
|
||||||
- name: Create the latest alias
|
- name: Create the latest alias
|
||||||
if: ${{ needs.conan-recipe-version.outputs.recipe_id_latest != '' && always() }}
|
if: always()
|
||||||
run: conan alias ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
run: conan alias ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||||
|
|
||||||
- name: Upload the Package(s)
|
- name: Upload the Package(s)
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
conan upload "*" -r cura --all -c
|
conan upload ${{ needs.conan-recipe-version.outputs.recipe_id_full }} -r cura --all -c
|
||||||
conan upload "*" -r cura-ce -c
|
conan upload ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} -r cura -c
|
||||||
|
|
||||||
notify-create:
|
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')) }}
|
if: ${{ always() && (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
|
||||||
|
|
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 }}
|
if: ${{ !inputs.conan_export_binaries }}
|
||||||
run: conan export . ${{ inputs.recipe_id_full }}
|
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
|
- name: Create the latest alias
|
||||||
if: ${{ inputs.recipe_id_latest != '' && always() }}
|
if: always()
|
||||||
run: conan alias ${{ inputs.recipe_id_latest }} ${{ inputs.recipe_id_full }}
|
run: conan alias ${{ inputs.recipe_id_latest }} ${{ inputs.recipe_id_full }}
|
||||||
|
|
||||||
- name: Upload the Package(s)
|
- name: Upload the Package(s)
|
||||||
if: always()
|
if: always()
|
||||||
run: conan upload "*" -r cura --all -c
|
run: |
|
||||||
|
conan upload ${{ inputs.recipe_id_full }} -r cura --all -c
|
||||||
- name: Upload the Package(s) community
|
conan upload ${{ inputs.recipe_id_latest }} -r cura -c
|
||||||
if: ${{ always() && inputs.conan_upload_community == true }}
|
|
||||||
run: conan upload "*" -r cura-ce -c
|
|
||||||
|
|
10
.github/workflows/conan-recipe-version.yml
vendored
10
.github/workflows/conan-recipe-version.yml
vendored
|
@ -132,7 +132,7 @@ jobs:
|
||||||
# %% Get the actual version
|
# %% Get the actual version
|
||||||
latest_branch_version = Version("0.0.0")
|
latest_branch_version = Version("0.0.0")
|
||||||
latest_branch_tag = None
|
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"):
|
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
|
continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
|
||||||
try:
|
try:
|
||||||
|
@ -156,7 +156,7 @@ jobs:
|
||||||
# The prerealese did not contain a version number, default it to 1
|
# The prerealese did not contain a version number, default it to 1
|
||||||
latest_branch_version_prerelease = f"{latest_branch_version.pre}.1"
|
latest_branch_version_prerelease = f"{latest_branch_version.pre}.1"
|
||||||
if event_name == "pull_request":
|
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}"
|
channel_metadata = f"{channel}_{no_commits}"
|
||||||
else:
|
else:
|
||||||
if channel in ("stable", "_", ""):
|
if channel in ("stable", "_", ""):
|
||||||
|
@ -170,10 +170,12 @@ jobs:
|
||||||
# An actual full release has been created, we are working on patch
|
# An actual full release has been created, we are working on patch
|
||||||
bump_up_patch = int(str(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}"
|
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:
|
else:
|
||||||
# An beta release has been created we are working toward a next beta or full release
|
# An beta release has been created we are working toward a next beta or full release
|
||||||
bump_up_release_tag = int(str(latest_branch_version.pre.split('.')[1])) + 1
|
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}-{latest_branch_version.pre.split('.')[0]}.{bump_up_release_tag}+{buildmetadata}{channel_metadata}"
|
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:
|
else:
|
||||||
max_branches_version = Version("0.0.0")
|
max_branches_version = Version("0.0.0")
|
||||||
branches_no_commits = no_commits
|
branches_no_commits = no_commits
|
||||||
|
|
26
.github/workflows/cura-installer.yml
vendored
26
.github/workflows/cura-installer.yml
vendored
|
@ -273,6 +273,32 @@ jobs:
|
||||||
f.writelines(f"INSTALLER_EXT={installer_ext}\n")
|
f.writelines(f"INSTALLER_EXT={installer_ext}\n")
|
||||||
f.writelines(f"FULL_INSTALLER_FILENAME={installer_filename}.{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)
|
- name: Archive the artifacts (bash)
|
||||||
if: ${{ !inputs.installer && runner.os != 'Windows' }}
|
if: ${{ !inputs.installer && runner.os != 'Windows' }}
|
||||||
run: tar -zcf "./${{ steps.filename.outputs.INSTALLER_FILENAME }}.tar.gz" "./UltiMaker-Cura/"
|
run: tar -zcf "./${{ steps.filename.outputs.INSTALLER_FILENAME }}.tar.gz" "./UltiMaker-Cura/"
|
||||||
|
|
71
.github/workflows/security_badge.yml
vendored
Normal file
71
.github/workflows/security_badge.yml
vendored
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
# NOTE: Best to keep all of these remarks in, they might prove useful in the future.
|
||||||
|
# This is basically just the standard one that is sugested on 'new workflow'.
|
||||||
|
|
||||||
|
name: Scorecard supply-chain security
|
||||||
|
on:
|
||||||
|
# For Branch-Protection check. Only the default branch is supported. See
|
||||||
|
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
|
||||||
|
branch_protection_rule:
|
||||||
|
# To guarantee Maintained check is occasionally updated. See
|
||||||
|
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
|
||||||
|
schedule:
|
||||||
|
- cron: '25 2 * * 5'
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
|
||||||
|
# Declare default permissions as read only.
|
||||||
|
permissions: read-all
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analysis:
|
||||||
|
name: Scorecard analysis
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
# Needed to upload the results to code-scanning dashboard.
|
||||||
|
security-events: write
|
||||||
|
# Needed to publish results and get a badge (see publish_results below).
|
||||||
|
id-token: write
|
||||||
|
# Uncomment the permissions below if installing in a private repository.
|
||||||
|
# contents: read
|
||||||
|
# actions: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "Checkout code"
|
||||||
|
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: "Run analysis"
|
||||||
|
uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2
|
||||||
|
with:
|
||||||
|
results_file: results.sarif
|
||||||
|
results_format: sarif
|
||||||
|
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
|
||||||
|
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||||
|
# - you are installing Scorecard on a *private* repository
|
||||||
|
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
|
||||||
|
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
|
||||||
|
|
||||||
|
# Public repositories:
|
||||||
|
# - Publish results to OpenSSF REST API for easy access by consumers
|
||||||
|
# - Allows the repository to include the Scorecard badge.
|
||||||
|
# - See https://github.com/ossf/scorecard-action#publishing-results.
|
||||||
|
# For private repositories:
|
||||||
|
# - `publish_results` will always be set to `false`, regardless
|
||||||
|
# of the value entered here.
|
||||||
|
publish_results: true
|
||||||
|
|
||||||
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
||||||
|
# format to the repository Actions tab.
|
||||||
|
- name: "Upload artifact"
|
||||||
|
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
|
||||||
|
with:
|
||||||
|
name: SARIF file
|
||||||
|
path: results.sarif
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
# Upload the results to GitHub's code scanning dashboard.
|
||||||
|
- name: "Upload to code-scanning"
|
||||||
|
uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
|
||||||
|
with:
|
||||||
|
sarif_file: results.sarif
|
75
.github/workflows/update-translation.yml
vendored
Normal file
75
.github/workflows/update-translation.yml
vendored
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
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: Cache Conan data
|
||||||
|
id: cache-conan
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.conan
|
||||||
|
key: ${{ runner.os }}-conan
|
||||||
|
|
||||||
|
- 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 --force
|
||||||
|
|
||||||
|
- 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>
|
<br>
|
||||||
|
|
||||||
<div align = center>
|
<div align = center>
|
||||||
|
@ -51,6 +57,9 @@
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
[](https://api.securityscorecards.dev/projects/github.com/Ultimaker/Cura)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<!----------------------------------------------------------------------------->
|
<!----------------------------------------------------------------------------->
|
||||||
|
|
||||||
|
|
27
conanfile.py
27
conanfile.py
|
@ -26,8 +26,7 @@ class CuraConan(ConanFile):
|
||||||
no_copy_source = True # We won't build so no need to copy sources to the build folder
|
no_copy_source = True # We won't build so no need to copy sources to the build folder
|
||||||
|
|
||||||
# FIXME: Remove specific branch once merged to main
|
# 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/[>=2.1.1]@ultimaker/stable"
|
||||||
python_requires = "umbase/[>=0.1.7]@ultimaker/stable", "translationextractor/[>=1.0.0]@ultimaker/stable"
|
|
||||||
python_requires_extend = "umbase.UMBaseConanfile"
|
python_requires_extend = "umbase.UMBaseConanfile"
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
@ -49,6 +48,10 @@ class CuraConan(ConanFile):
|
||||||
"internal": False,
|
"internal": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def set_version(self):
|
||||||
|
if self.version == "auto":
|
||||||
|
self.version = "5.4.0-alpha"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _pycharm_targets(self):
|
def _pycharm_targets(self):
|
||||||
return self.conan_data["pycharm_targets"]
|
return self.conan_data["pycharm_targets"]
|
||||||
|
@ -257,10 +260,6 @@ class CuraConan(ConanFile):
|
||||||
copy(self, "CuraVersion.py.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)
|
copy(self, "cura_app.py", self.recipe_folder, self.export_sources_folder)
|
||||||
|
|
||||||
def set_version(self):
|
|
||||||
if self.version is None:
|
|
||||||
self.version = self._umdefault_version()
|
|
||||||
|
|
||||||
def configure(self):
|
def configure(self):
|
||||||
self.options["pyarcus"].shared = True
|
self.options["pyarcus"].shared = True
|
||||||
self.options["pysavitar"].shared = True
|
self.options["pysavitar"].shared = True
|
||||||
|
@ -278,17 +277,17 @@ class CuraConan(ConanFile):
|
||||||
self.requires("pysavitar/5.2.2")
|
self.requires("pysavitar/5.2.2")
|
||||||
self.requires("pynest2d/5.2.2")
|
self.requires("pynest2d/5.2.2")
|
||||||
self.requires("uranium/(latest)@ultimaker/testing")
|
self.requires("uranium/(latest)@ultimaker/testing")
|
||||||
self.requires("fdm_materials/(latest)@{}/cura_10317".format("internal" if self.options.internal else "ultimaker"))
|
self.requires("fdm_materials/(latest)@{}/testing".format("internal" if self.options.internal else "ultimaker"))
|
||||||
self.requires("cura_binary_data/(latest)@ultimaker/testing")
|
self.requires("cura_binary_data/(latest)@ultimaker/testing")
|
||||||
self.requires("cpython/3.10.4")
|
self.requires("cpython/3.10.4")
|
||||||
if self.options.internal:
|
if self.options.internal:
|
||||||
self.requires("cura_private_data/(latest)@ultimaker/cura_10317")
|
self.requires("cura_private_data/(latest)@ultimaker/testing")
|
||||||
|
|
||||||
def build_requirements(self):
|
def build_requirements(self):
|
||||||
if self.options.devtools:
|
if self.options.devtools:
|
||||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
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
|
# 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):
|
def layout(self):
|
||||||
self.folders.source = "."
|
self.folders.source = "."
|
||||||
|
@ -317,19 +316,15 @@ class CuraConan(ConanFile):
|
||||||
icon_path = "'{}'".format(os.path.join(self.source_folder, "packaging", self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).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")
|
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):
|
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type=str):
|
||||||
vb = VirtualBuildEnv(self)
|
vb = VirtualBuildEnv(self)
|
||||||
vb.generate()
|
vb.generate()
|
||||||
|
|
||||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
# 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
|
cpp_info = self.dependencies["gettext"].cpp_info
|
||||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
pot = self.python_requires["translationextractor"].module.ExtractTranslations(self, cpp_info.bindirs[0])
|
||||||
pot_file = self.source_path.joinpath("resources", "i18n", po_file.with_suffix('.pot').name)
|
pot.generate()
|
||||||
mkdir(self, str(unix_path(self, pot_file.parent)))
|
|
||||||
self.run(
|
|
||||||
f"{cpp_info.bindirs[0]}/msgmerge --no-wrap --no-fuzzy-matching -width=140 -o {po_file} {po_file} {pot_file}",
|
|
||||||
env="conanbuild", ignore_errors=True)
|
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
if self.options.devtools:
|
if self.options.devtools:
|
||||||
|
|
|
@ -2076,3 +2076,7 @@ class CuraApplication(QtApplication):
|
||||||
@classmethod
|
@classmethod
|
||||||
def getInstance(cls, *args, **kwargs) -> "CuraApplication":
|
def getInstance(cls, *args, **kwargs) -> "CuraApplication":
|
||||||
return cast(CuraApplication, super().getInstance(**kwargs))
|
return cast(CuraApplication, super().getInstance(**kwargs))
|
||||||
|
|
||||||
|
@pyqtProperty(bool, constant=True)
|
||||||
|
def isEnterprise(self) -> bool:
|
||||||
|
return ApplicationMetadata.IsEnterpriseVersion
|
||||||
|
|
|
@ -466,7 +466,6 @@ class ExtruderManager(QObject):
|
||||||
return False
|
return False
|
||||||
return list(active_material_node_qualities.keys())[0] != "empty_quality"
|
return list(active_material_node_qualities.keys())[0] != "empty_quality"
|
||||||
|
|
||||||
|
|
||||||
@pyqtSlot(str, result="QVariant")
|
@pyqtSlot(str, result="QVariant")
|
||||||
def getInstanceExtruderValues(self, key: str) -> List:
|
def getInstanceExtruderValues(self, key: str) -> List:
|
||||||
"""Get all extruder values for a certain setting.
|
"""Get all extruder values for a certain setting.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
scriptdir=$(dirname $0)
|
scriptdir=$(dirname $0)
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ from .WorkspaceDialog import WorkspaceDialog
|
||||||
i18n_catalog = i18nCatalog("cura")
|
i18n_catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
|
||||||
_ignored_machine_network_metadata = {
|
_ignored_machine_network_metadata: Set[str] = {
|
||||||
"um_cloud_cluster_id",
|
"um_cloud_cluster_id",
|
||||||
"um_network_key",
|
"um_network_key",
|
||||||
"um_linked_to_account",
|
"um_linked_to_account",
|
||||||
|
@ -55,7 +55,7 @@ _ignored_machine_network_metadata = {
|
||||||
"capabilities",
|
"capabilities",
|
||||||
"octoprint_api_key",
|
"octoprint_api_key",
|
||||||
"is_abstract_machine"
|
"is_abstract_machine"
|
||||||
} # type: Set[str]
|
}
|
||||||
|
|
||||||
|
|
||||||
class ContainerInfo:
|
class ContainerInfo:
|
||||||
|
@ -69,41 +69,41 @@ class ContainerInfo:
|
||||||
|
|
||||||
class QualityChangesInfo:
|
class QualityChangesInfo:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.name = None
|
self.name: Optional[str] = None
|
||||||
self.global_info = None
|
self.global_info = None
|
||||||
self.extruder_info_dict = {} # type: Dict[str, ContainerInfo]
|
self.extruder_info_dict: Dict[str, ContainerInfo] = {}
|
||||||
|
|
||||||
|
|
||||||
class MachineInfo:
|
class MachineInfo:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.container_id = None
|
self.container_id: Optional[str] = None
|
||||||
self.name = None
|
self.name: Optional[str] = None
|
||||||
self.definition_id = None
|
self.definition_id: Optional[str] = None
|
||||||
|
|
||||||
self.metadata_dict = {} # type: Dict[str, str]
|
self.metadata_dict: Dict[str, str] = {}
|
||||||
|
|
||||||
self.quality_type = None
|
self.quality_type: Optional[str] = None
|
||||||
self.intent_category = None
|
self.intent_category: Optional[str] = None
|
||||||
self.custom_quality_name = None
|
self.custom_quality_name: Optional[str] = None
|
||||||
self.quality_changes_info = None
|
self.quality_changes_info: Optional[QualityChangesInfo] = None
|
||||||
self.variant_info = None
|
self.variant_info: Optional[ContainerInfo] = None
|
||||||
|
|
||||||
self.definition_changes_info = None
|
self.definition_changes_info: Optional[ContainerInfo] = None
|
||||||
self.user_changes_info = None
|
self.user_changes_info: Optional[ContainerInfo] = None
|
||||||
|
|
||||||
self.extruder_info_dict = {} # type: Dict[str, ExtruderInfo]
|
self.extruder_info_dict: Dict[str, str] = {}
|
||||||
|
|
||||||
|
|
||||||
class ExtruderInfo:
|
class ExtruderInfo:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.position = None
|
self.position = None
|
||||||
self.enabled = True
|
self.enabled = True
|
||||||
self.variant_info = None
|
self.variant_info: Optional[ContainerInfo] = None
|
||||||
self.root_material_id = None
|
self.root_material_id: Optional[str] = None
|
||||||
|
|
||||||
self.definition_changes_info = None
|
self.definition_changes_info: Optional[ContainerInfo] = None
|
||||||
self.user_changes_info = None
|
self.user_changes_info: Optional[ContainerInfo] = None
|
||||||
self.intent_info = None
|
self.intent_info: Optional[ContainerInfo] = None
|
||||||
|
|
||||||
|
|
||||||
class ThreeMFWorkspaceReader(WorkspaceReader):
|
class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
|
@ -131,14 +131,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
# - variant
|
# - variant
|
||||||
self._ignored_instance_container_types = {"quality", "variant"}
|
self._ignored_instance_container_types = {"quality", "variant"}
|
||||||
|
|
||||||
self._resolve_strategies = {} # type: Dict[str, str]
|
self._resolve_strategies: Dict[str, str] = {}
|
||||||
|
|
||||||
self._id_mapping = {} # type: Dict[str, str]
|
self._id_mapping: Dict[str, str] = {}
|
||||||
|
|
||||||
# In Cura 2.5 and 2.6, the empty profiles used to have those long names
|
# In Cura 2.5 and 2.6, the empty profiles used to have those long names
|
||||||
self._old_empty_profile_id_dict = {"empty_%s" % k: "empty" for k in ["material", "variant"]}
|
self._old_empty_profile_id_dict = {"empty_%s" % k: "empty" for k in ["material", "variant"]}
|
||||||
|
|
||||||
self._old_new_materials = {} # type: Dict[str, str]
|
self._old_new_materials: Dict[str, str] = {}
|
||||||
self._machine_info = None
|
self._machine_info = None
|
||||||
|
|
||||||
def _clearState(self):
|
def _clearState(self):
|
||||||
|
@ -461,11 +461,15 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
|
|
||||||
materials_in_extruders_dict = {} # Which material is in which extruder
|
materials_in_extruders_dict = {} # Which material is in which extruder
|
||||||
|
|
||||||
# if the global stack is found, we check if there are conflicts in the extruder stacks
|
# If the global stack is found, we check if there are conflicts in the extruder stacks
|
||||||
for extruder_stack_file in extruder_stack_files:
|
for extruder_stack_file in extruder_stack_files:
|
||||||
serialized = archive.open(extruder_stack_file).read().decode("utf-8")
|
serialized = archive.open(extruder_stack_file).read().decode("utf-8")
|
||||||
|
|
||||||
|
not_upgraded_parser = ConfigParser(interpolation=None)
|
||||||
|
not_upgraded_parser.read_string(serialized)
|
||||||
|
|
||||||
serialized = ExtruderStack._updateSerialized(serialized, extruder_stack_file)
|
serialized = ExtruderStack._updateSerialized(serialized, extruder_stack_file)
|
||||||
parser = ConfigParser(interpolation = None)
|
parser = ConfigParser(interpolation=None)
|
||||||
parser.read_string(serialized)
|
parser.read_string(serialized)
|
||||||
|
|
||||||
# The check should be done for the extruder stack that's associated with the existing global stack,
|
# The check should be done for the extruder stack that's associated with the existing global stack,
|
||||||
|
@ -497,19 +501,26 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
extruder_info.user_changes_info = instance_container_info_dict[user_changes_id]
|
extruder_info.user_changes_info = instance_container_info_dict[user_changes_id]
|
||||||
self._machine_info.extruder_info_dict[position] = extruder_info
|
self._machine_info.extruder_info_dict[position] = extruder_info
|
||||||
|
|
||||||
|
intent_container_id = parser["containers"][str(_ContainerIndexes.Intent)]
|
||||||
|
|
||||||
intent_id = parser["containers"][str(_ContainerIndexes.Intent)]
|
intent_id = parser["containers"][str(_ContainerIndexes.Intent)]
|
||||||
if intent_id not in ("empty", "empty_intent"):
|
if intent_id not in ("empty", "empty_intent"):
|
||||||
|
if intent_container_id in instance_container_info_dict:
|
||||||
extruder_info.intent_info = instance_container_info_dict[intent_id]
|
extruder_info.intent_info = instance_container_info_dict[intent_id]
|
||||||
|
else:
|
||||||
|
# It can happen that an intent has been renamed. In that case, we should still use the old
|
||||||
|
# name, since we used that to generate the instance_container_info_dict keys.
|
||||||
|
extruder_info.intent_info = instance_container_info_dict[not_upgraded_parser["containers"][str(_ContainerIndexes.Intent)]]
|
||||||
|
|
||||||
if not machine_conflict and containers_found_dict["machine"] and global_stack:
|
if not machine_conflict and containers_found_dict["machine"] and global_stack:
|
||||||
if int(position) >= len(global_stack.extruderList):
|
if int(position) >= len(global_stack.extruderList):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
existing_extruder_stack = global_stack.extruderList[int(position)]
|
existing_extruder_stack = global_stack.extruderList[int(position)]
|
||||||
# check if there are any changes at all in any of the container stacks.
|
# Check if there are any changes at all in any of the container stacks.
|
||||||
id_list = self._getContainerIdListFromSerialized(serialized)
|
id_list = self._getContainerIdListFromSerialized(serialized)
|
||||||
for index, container_id in enumerate(id_list):
|
for index, container_id in enumerate(id_list):
|
||||||
# take into account the old empty container IDs
|
# Take into account the old empty container IDs
|
||||||
container_id = self._old_empty_profile_id_dict.get(container_id, container_id)
|
container_id = self._old_empty_profile_id_dict.get(container_id, container_id)
|
||||||
if existing_extruder_stack.getContainer(index).getId() != container_id:
|
if existing_extruder_stack.getContainer(index).getId() != container_id:
|
||||||
machine_conflict = True
|
machine_conflict = True
|
||||||
|
@ -740,7 +751,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
# quality_changes file. If that's the case, take the extruder count into account when creating the machine
|
# quality_changes file. If that's the case, take the extruder count into account when creating the machine
|
||||||
# or else the extruderList will return only the first extruder, leading to missing non-global settings in
|
# or else the extruderList will return only the first extruder, leading to missing non-global settings in
|
||||||
# the other extruders.
|
# the other extruders.
|
||||||
machine_extruder_count = self._getMachineExtruderCount() # type: Optional[int]
|
machine_extruder_count: Optional[int] = self._getMachineExtruderCount()
|
||||||
global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id, machine_extruder_count)
|
global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id, machine_extruder_count)
|
||||||
if global_stack: # Only switch if creating the machine was successful.
|
if global_stack: # Only switch if creating the machine was successful.
|
||||||
extruder_stack_dict = {str(position): extruder for position, extruder in enumerate(global_stack.extruderList)}
|
extruder_stack_dict = {str(position): extruder for position, extruder in enumerate(global_stack.extruderList)}
|
||||||
|
@ -751,8 +762,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
global_stacks = self._container_registry.findContainerStacks(id = self._dialog.getMachineToOverride(), type = "machine")
|
global_stacks = self._container_registry.findContainerStacks(id = self._dialog.getMachineToOverride(), type = "machine")
|
||||||
if not global_stacks:
|
if not global_stacks:
|
||||||
message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tag <filename>!",
|
message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tag <filename>!",
|
||||||
"Project file <filename>{0}</filename> is made using profiles that"
|
"Project file <filename>{0}</filename> is made using profiles that are unknown to this version of UltiMaker Cura.", file_name),
|
||||||
" are unknown to this version of Ultimaker Cura.", file_name),
|
|
||||||
message_type = Message.MessageType.ERROR)
|
message_type = Message.MessageType.ERROR)
|
||||||
message.show()
|
message.show()
|
||||||
self.setWorkspaceName("")
|
self.setWorkspaceName("")
|
||||||
|
@ -868,7 +878,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _loadMetadata(file_name: str) -> Dict[str, Dict[str, Any]]:
|
def _loadMetadata(file_name: str) -> Dict[str, Dict[str, Any]]:
|
||||||
result = dict() # type: Dict[str, Dict[str, Any]]
|
result: Dict[str, Dict[str, Any]] = dict()
|
||||||
try:
|
try:
|
||||||
archive = zipfile.ZipFile(file_name, "r")
|
archive = zipfile.ZipFile(file_name, "r")
|
||||||
except zipfile.BadZipFile:
|
except zipfile.BadZipFile:
|
||||||
|
@ -880,7 +890,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
|
|
||||||
metadata_files = [name for name in archive.namelist() if name.endswith("plugin_metadata.json")]
|
metadata_files = [name for name in archive.namelist() if name.endswith("plugin_metadata.json")]
|
||||||
|
|
||||||
|
|
||||||
for metadata_file in metadata_files:
|
for metadata_file in metadata_files:
|
||||||
try:
|
try:
|
||||||
plugin_id = metadata_file.split("/")[0]
|
plugin_id = metadata_file.split("/")[0]
|
||||||
|
@ -921,7 +930,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
quality_changes_name = self._container_registry.uniqueName(quality_changes_name)
|
quality_changes_name = self._container_registry.uniqueName(quality_changes_name)
|
||||||
for position, container_info in container_info_dict.items():
|
for position, container_info in container_info_dict.items():
|
||||||
extruder_stack = None
|
extruder_stack = None
|
||||||
intent_category = None # type: Optional[str]
|
intent_category: Optional[str] = None
|
||||||
if position is not None:
|
if position is not None:
|
||||||
try:
|
try:
|
||||||
extruder_stack = global_stack.extruderList[int(position)]
|
extruder_stack = global_stack.extruderList[int(position)]
|
||||||
|
@ -1162,7 +1171,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
root_material_id = self._old_new_materials.get(root_material_id, root_material_id)
|
root_material_id = self._old_new_materials.get(root_material_id, root_material_id)
|
||||||
|
|
||||||
material_node = machine_node.variants[extruder_stack.variant.getName()].materials[root_material_id]
|
material_node = machine_node.variants[extruder_stack.variant.getName()].materials[root_material_id]
|
||||||
extruder_stack.material = material_node.container # type: InstanceContainer
|
extruder_stack.material = material_node.container
|
||||||
|
|
||||||
def _applyChangesToMachine(self, global_stack, extruder_stack_dict):
|
def _applyChangesToMachine(self, global_stack, extruder_stack_dict):
|
||||||
# Clear all first
|
# Clear all first
|
||||||
|
|
|
@ -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._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._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
|
self._is_disabled = False #type: bool
|
||||||
|
|
||||||
application.getPreferences().addPreference("general/auto_slice", False)
|
application.getPreferences().addPreference("general/auto_slice", False)
|
||||||
|
@ -171,10 +171,25 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
)
|
)
|
||||||
self._slicing_error_message.actionTriggered.connect(self._reportBackendError)
|
self._slicing_error_message.actionTriggered.connect(self._reportBackendError)
|
||||||
|
|
||||||
|
self._resetLastSliceTimeStats()
|
||||||
self._snapshot = None #type: Optional[QImage]
|
self._snapshot = None #type: Optional[QImage]
|
||||||
|
|
||||||
application.initializationFinished.connect(self.initialize)
|
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:
|
def initialize(self) -> None:
|
||||||
application = CuraApplication.getInstance()
|
application = CuraApplication.getInstance()
|
||||||
self._multi_build_plate_model = application.getMultiBuildPlateModel()
|
self._multi_build_plate_model = application.getMultiBuildPlateModel()
|
||||||
|
@ -288,7 +303,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
self._createSnapshot()
|
self._createSnapshot()
|
||||||
|
|
||||||
Logger.log("i", "Starting to slice...")
|
Logger.log("i", "Starting to slice...")
|
||||||
self._slice_start_time = time()
|
self._time_start_process = time()
|
||||||
if not self._build_plates_to_be_sliced:
|
if not self._build_plates_to_be_sliced:
|
||||||
self.processingProgress.emit(1.0)
|
self.processingProgress.emit(1.0)
|
||||||
Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.")
|
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
|
# Notify the user that it's now up to the backend to do it's job
|
||||||
self.setState(BackendState.Processing)
|
self.setState(BackendState.Processing)
|
||||||
|
|
||||||
if self._slice_start_time:
|
# Handle time reporting.
|
||||||
Logger.log("d", "Sending slice message took %s seconds", time() - self._slice_start_time )
|
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:
|
def determineAutoSlicing(self) -> bool:
|
||||||
"""Determine enable or disable auto slicing. Return True for enable timer and False otherwise.
|
"""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.setState(BackendState.Done)
|
||||||
self.processingProgress.emit(1.0)
|
self.processingProgress.emit(1.0)
|
||||||
|
self._time_end_slice = time()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
gcode_list = self._scene.gcode_dict[self._start_slice_job_build_plate] #type: ignore #Because we generate this attribute dynamically.
|
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
|
gcode_list[index] = replaced
|
||||||
|
|
||||||
self._slicing = False
|
self._slicing = False
|
||||||
if self._slice_start_time:
|
if self._time_start_process:
|
||||||
Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time )
|
Logger.log("d", "Slicing took %s seconds", time() - self._time_start_process)
|
||||||
Logger.log("d", "Number of models per buildplate: %s", dict(self._numObjectsPerBuildPlate()))
|
Logger.log("d", "Number of models per buildplate: %s", dict(self._numObjectsPerBuildPlate()))
|
||||||
|
|
||||||
# See if we need to process the sliced layers job.
|
# See if we need to process the sliced layers job.
|
||||||
|
|
|
@ -135,9 +135,21 @@ class DFFileExportAndUploadManager:
|
||||||
file_name = file_upload_response.job_name if file_upload_response.job_name is not None else ""
|
file_name = file_upload_response.job_name if file_upload_response.job_name is not None else ""
|
||||||
else:
|
else:
|
||||||
Logger.log("e", "Wrong response type received. Aborting uploading file to the Digital Library")
|
Logger.log("e", "Wrong response type received. Aborting uploading file to the Digital Library")
|
||||||
|
getBackwardsCompatibleMessage(
|
||||||
|
text = "Upload error",
|
||||||
|
title = f"Failed to upload {file_name}. Received unexpected response from server.",
|
||||||
|
message_type_str = "ERROR",
|
||||||
|
lifetime = 0
|
||||||
|
).show()
|
||||||
return
|
return
|
||||||
if file_name not in self._file_upload_job_metadata:
|
if file_name not in self._file_upload_job_metadata:
|
||||||
Logger.error(f"API response for uploading doesn't match the file name we just uploaded: {file_name} was never uploaded.")
|
Logger.error(f"API response for uploading doesn't match the file name we just uploaded: {file_name} was never uploaded.")
|
||||||
|
getBackwardsCompatibleMessage(
|
||||||
|
text = "Upload error",
|
||||||
|
title = f"Failed to upload {file_name}. Name doesn't match the one sent back in confirmation.",
|
||||||
|
message_type_str = "ERROR",
|
||||||
|
lifetime = 0
|
||||||
|
).show()
|
||||||
return
|
return
|
||||||
with self._message_lock:
|
with self._message_lock:
|
||||||
self.progress_message.show()
|
self.progress_message.show()
|
||||||
|
|
|
@ -501,6 +501,12 @@ class DigitalFactoryController(QObject):
|
||||||
"""
|
"""
|
||||||
if not download_url:
|
if not download_url:
|
||||||
Logger.log("e", "No download url for file '{}'".format(file_name))
|
Logger.log("e", "No download url for file '{}'".format(file_name))
|
||||||
|
getBackwardsCompatibleMessage(
|
||||||
|
text = "Download error",
|
||||||
|
title = f"No download url could be found for '{file_name}'.",
|
||||||
|
message_type_str = "ERROR",
|
||||||
|
lifetime = 0
|
||||||
|
).show()
|
||||||
return
|
return
|
||||||
|
|
||||||
progress_message = Message(text = "{0}/{1}".format(project_name, file_name), dismissable = False, lifetime = 0,
|
progress_message = Message(text = "{0}/{1}".format(project_name, file_name), dismissable = False, lifetime = 0,
|
||||||
|
@ -584,6 +590,12 @@ class DigitalFactoryController(QObject):
|
||||||
"""
|
"""
|
||||||
if self._selected_project_idx == -1:
|
if self._selected_project_idx == -1:
|
||||||
Logger.log("e", "No DF Library project is selected.")
|
Logger.log("e", "No DF Library project is selected.")
|
||||||
|
getBackwardsCompatibleMessage(
|
||||||
|
text = "No Digital Library project was selected",
|
||||||
|
title = "No project selected",
|
||||||
|
message_type_str = "ERROR",
|
||||||
|
lifetime = 0
|
||||||
|
).show()
|
||||||
return
|
return
|
||||||
|
|
||||||
if filename == "":
|
if filename == "":
|
||||||
|
|
|
@ -303,18 +303,17 @@ Item
|
||||||
|
|
||||||
Component.onCompleted:
|
Component.onCompleted:
|
||||||
{
|
{
|
||||||
update()
|
updateModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
function update()
|
function updateModel()
|
||||||
{
|
|
||||||
clear()
|
|
||||||
for (var i = 1; i <= Cura.MachineManager.activeMachine.maxExtruderCount; i++)
|
|
||||||
{
|
{
|
||||||
|
clear();
|
||||||
|
for (var i = 1; i <= Cura.MachineManager.activeMachine.maxExtruderCount; i ++) {
|
||||||
// Use String as value. JavaScript only has Number. PropertyProvider.setPropertyValue()
|
// Use String as value. JavaScript only has Number. PropertyProvider.setPropertyValue()
|
||||||
// takes a QVariant as value, and Number gets translated into a float. This will cause problem
|
// takes a QVariant as value, and Number gets translated into a float. This will cause problem
|
||||||
// for integer settings such as "Number of Extruders".
|
// for integer settings such as "Number of Extruders".
|
||||||
append({ text: String(i), value: String(i) })
|
append({ text: String(i), value: String(i) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -322,7 +321,9 @@ Item
|
||||||
Connections
|
Connections
|
||||||
{
|
{
|
||||||
target: Cura.MachineManager
|
target: Cura.MachineManager
|
||||||
function onGlobalContainerChanged() { extruderCountModel.update() }
|
function onGlobalContainerChanged() {
|
||||||
|
extruderCountModel.updateModel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
"author": "Ultimaker B.V.",
|
"author": "Ultimaker B.V.",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"api": 8,
|
"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"
|
"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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ class PauseAtHeight(Script):
|
||||||
"pause_layer":
|
"pause_layer":
|
||||||
{
|
{
|
||||||
"label": "Pause Layer",
|
"label": "Pause Layer",
|
||||||
"description": "Enter the Number of the LAST layer you want to finish prior to the pause (from the Cura preview).",
|
"description": "Enter the Number of the LAST layer you want to finish prior to the pause. Note that 0 is the first layer printed.",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"value": "math.floor((pause_height - 0.27) / 0.1) + 1",
|
"value": "math.floor((pause_height - 0.27) / 0.1) + 1",
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
|
|
|
@ -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.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
@ -27,7 +27,7 @@ catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
|
||||||
class SliceInfo(QObject, Extension):
|
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
|
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).
|
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.
|
# Send the name of the output device type that is used.
|
||||||
data["output_to"] = type(output_device).__name__
|
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
|
# Convert data to bytes
|
||||||
binary_data = json.dumps(data).encode("utf-8")
|
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>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
<b>Cura Version:</b> 4.8<br/>
|
<b>Cura Version:</b> 4.8<br/>
|
||||||
|
@ -63,11 +67,18 @@
|
||||||
|
|
||||||
<h3>Print Times:</h3>
|
<h3>Print Times:</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Infill: 61200 sec.</li>
|
<li><b>Infill:</b> 61200 sec.</li>
|
||||||
<li>Support: 25480 sec.</li>
|
<li><b>Support:</b> 25480 sec.</li>
|
||||||
<li>Travel: 6224 sec.</li>
|
<li><b>Travel:</b> 6224 sec.</li>
|
||||||
<li>Walls: 10225 sec.</li>
|
<li><b>Walls:</b> 10225 sec.</li>
|
||||||
<li>Total: 103129 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>
|
</ul>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Ultimaker Network Connection",
|
"name": "UltiMaker Network Connection",
|
||||||
"author": "Ultimaker B.V.",
|
"author": "Ultimaker B.V.",
|
||||||
"description": "Manages network connections to Ultimaker networked printers.",
|
"description": "Manages network connections to UltiMaker networked printers.",
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"api": 8,
|
"api": 8,
|
||||||
"i18n-catalog": "cura"
|
"i18n-catalog": "cura"
|
||||||
|
|
|
@ -16,7 +16,7 @@ class LegacyDeviceNoLongerSupportedMessage(Message):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__(
|
super().__init__(
|
||||||
text = I18N_CATALOG.i18nc("@info:status", "You are attempting to connect to a printer that is not "
|
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."),
|
"latest firmware."),
|
||||||
title = I18N_CATALOG.i18nc("@info:title", "Update your printer"),
|
title = I18N_CATALOG.i18nc("@info:title", "Update your printer"),
|
||||||
lifetime = 10,
|
lifetime = 10,
|
||||||
|
|
|
@ -53,7 +53,7 @@ class AutoDetectBaudJob(Job):
|
||||||
try:
|
try:
|
||||||
serial = Serial(str(self._serial_port), baud_rate, timeout = read_timeout, writeTimeout = write_timeout)
|
serial = Serial(str(self._serial_port), baud_rate, timeout = read_timeout, writeTimeout = write_timeout)
|
||||||
except SerialException:
|
except SerialException:
|
||||||
Logger.logException("w", "Unable to create serial")
|
Logger.warning(f"Unable to create serial connection to {serial} with baud rate {baud_rate}")
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
# We already have a serial connection, just change the baud rate.
|
# We already have a serial connection, just change the baud rate.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "Ultimaker machine actions",
|
"name": "UltiMaker machine actions",
|
||||||
"author": "Ultimaker B.V.",
|
"author": "Ultimaker B.V.",
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
|
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
|
||||||
|
|
|
@ -10,6 +10,7 @@ if TYPE_CHECKING:
|
||||||
|
|
||||||
upgrade = VersionUpgrade52to53.VersionUpgrade52to53()
|
upgrade = VersionUpgrade52to53.VersionUpgrade52to53()
|
||||||
|
|
||||||
|
|
||||||
def getMetaData() -> Dict[str, Any]:
|
def getMetaData() -> Dict[str, Any]:
|
||||||
return {
|
return {
|
||||||
"version_upgrade": {
|
"version_upgrade": {
|
||||||
|
@ -21,6 +22,7 @@ def getMetaData() -> Dict[str, Any]:
|
||||||
("quality_changes", 4000020): ("quality_changes", 4000021, upgrade.upgradeInstanceContainer),
|
("quality_changes", 4000020): ("quality_changes", 4000021, upgrade.upgradeInstanceContainer),
|
||||||
("quality", 4000020): ("quality", 4000021, upgrade.upgradeInstanceContainer),
|
("quality", 4000020): ("quality", 4000021, upgrade.upgradeInstanceContainer),
|
||||||
("user", 4000020): ("user", 4000021, upgrade.upgradeInstanceContainer),
|
("user", 4000020): ("user", 4000021, upgrade.upgradeInstanceContainer),
|
||||||
|
("intent", 4000020): ("intent", 4000021, upgrade.upgradeInstanceContainer),
|
||||||
},
|
},
|
||||||
"sources": {
|
"sources": {
|
||||||
"preferences": {
|
"preferences": {
|
||||||
|
|
|
@ -1,46 +1,41 @@
|
||||||
### Direct requirements for Uranium and libCharon ###
|
### Direct requirements for Uranium and libCharon ###
|
||||||
PyQt6-sip==13.2.1 \
|
PyQt6-sip==13.4.1 \
|
||||||
--hash=sha256:b7bce59900b2e0a04f70246de2ccf79ee7933036b6b9183cf039b62eeae2b858 \
|
--hash=sha256:0df998f2b6ceeacfd10de773441572e215be0c9cae566cc7dd36e231bf714a12 \
|
||||||
--hash=sha256:8b52d42e42e6e9f934ac7528cd154ac0210a532bb33fa1edfb4a8bbfb73ff88b \
|
--hash=sha256:224575e84805c4317bacd5d1b8e93e0ad5c48685dadbbe1e902d4ebe16f22828 \
|
||||||
--hash=sha256:0314d011633bc697e99f3f9897b484720e81a5f4ba0eaa5f05c5811e2e74ea53 \
|
--hash=sha256:36ae29cdc223cacc1257d0f5075cf81474550c6d26b728f922487a2aa935f130 \
|
||||||
--hash=sha256:226e9e349aa16dc1132f106ca01fa99cf7cb8e59daee29304c2fea5fa33212ec
|
--hash=sha256:3a674c591d4274d4ea8127205290e927a7dab0eb87a0038d4f4ea1d430782649 \
|
||||||
PyQt6==6.2.3 \
|
--hash=sha256:3ef9392e4ae29d393b79237d85840cdc6b8831f36eed5d56c7d9b329b380cc8d \
|
||||||
--hash=sha256:a9bfcac198fe4b703706f809bb686c7cef5f60a7c802fc145c6b57929c7a6a34 \
|
--hash=sha256:43935873d60f57719632840d517afee04ef8f30e92cfe0dadc7e6326691920fc \
|
||||||
--hash=sha256:11c039b07962b29246de2da0912f4f663786185fd74d48daac7a270a43c8d92a \
|
--hash=sha256:5731f22618435654352ef07684549a17be82b75254227fc80b4b5b0b59fc6656 \
|
||||||
--hash=sha256:8a2f357b86fec8598f52f16d5f93416931017ca1986d5f68679c9565bfc21fff \
|
--hash=sha256:5bc4beb6fb1de4c9ba8beee7b1a4a813fa888c3b095206dafcd25d7e6e4ed2a7 \
|
||||||
--hash=sha256:577334c9d4518022a4cb6f9799dfbd1b996167eb31404b5a63d6c43d603e6418
|
--hash=sha256:5c36ab984402e96792eebf4b031abfaa589aa20af3190a79c54502c16964d97e \
|
||||||
PyQt6-Qt6==6.2.4 \
|
--hash=sha256:a2a0461992c6657f343308b150c4d6b57e9e7a0e5c2f79538434e7fb869ea827 \
|
||||||
--hash=sha256:42c37475a50ec7e06e0445ac9ce39465f69a86af407ad9b28b183da178d401ee \
|
--hash=sha256:a81490ee84d7a41a126b116081bd97d758f41bf706aee0a8cec24d6e4c660184 \
|
||||||
--hash=sha256:b68543e5d5a4f5d24c26b517569da3cd30b0fbe75390b841e142c160399b3c0a \
|
--hash=sha256:e00e287ea05bbc293fc6e2198301962af9b7b622bd2daf4288f925a88ae35dc9 \
|
||||||
--hash=sha256:0aa93581b92e01deaf2dcaad88ed6718996a6d84de59ee88316bcba143f008c9 \
|
--hash=sha256:e670a7b2fb7e32204ce67d274017bfff3e21139d217d60cebbfcb75b019c91ee \
|
||||||
--hash=sha256:48bc5b7400d6bca13d8c0a145f82295a6da317952ee1a3f107f1cd7d078c8140
|
--hash=sha256:ee06f255787a0b4957f357f93b78d2a11ca3761916833e3afa83f1381d4d1a46 \
|
||||||
PyQt6-NetworkAuth==6.2.0 \
|
--hash=sha256:fbee0d554e0e98f56dbf6d94b00a28cc32425938ad7ae98fd91f8822c5b24d45 \
|
||||||
--hash=sha256:23e730cc0d6b828bec2f92d9fac3607871e6033a8af4620e5d4e3afc13bd6c3c \
|
--hash=sha256:fcc6d78314783f4a193f02353f431b7ea4d357f47c3c7a7d0740e723f69c64dc
|
||||||
--hash=sha256:b85ee25b01d6cb38d6141df0052b96de2df7f6e69066eaddb22ae238f56be40b \
|
PyQt6==6.4.2 \
|
||||||
--hash=sha256:e637781a00dd2032d0fd2025af09274898335033763e1dc765a5a99348f60c3b \
|
--hash=sha256:18d1daf98d9236d55102cdadafd1056f5802f3c9288fcf7238569937b71a89f0 \
|
||||||
--hash=sha256:542e9d9a8a5bb78e1f26fa3d35ee01f45209bcf5a35b0cc367aaa85932c29750
|
--hash=sha256:25bd399b4a95dce65d5f937c1aa85d3c7e14a21745ae2a4ca14c0116cd104290 \
|
||||||
PyQt6-NetworkAuth-Qt6==6.2.4 \
|
--hash=sha256:740244f608fe15ee1d89695c43f31a14caeca41c4f02ac36c86dfba4a5d5813d \
|
||||||
--hash=sha256:c7996a9d8c4ce024529ec37981fbfd525ab1a2d497af1281f81f2b6054452d2e \
|
--hash=sha256:c128bc0f17833e324593e3db83e99470d451a197dd17ff0333927b946c935bd9
|
||||||
--hash=sha256:1ae9e08e03bd9d5ebdb42dfaccf484a9cc62eeea7504621fe42c005ff1745e66 \
|
PyQt6-Qt6==6.4.2 \
|
||||||
--hash=sha256:1363ea81e5c6ac10bfd643e41ba0d215c0d031a57ff1e5972cc4c2a918efe712 \
|
--hash=sha256:9f07c3c100cb46cca4074965e7494d4df4f0fc016497d5303c1fe135822876e1 \
|
||||||
--hash=sha256:8ed4e5e0eaaa42a6f91aba6745eea23fb3ffcbddc6b162016936530ed28dd0ad
|
--hash=sha256:a29b8c858babd523e80c8db5f8fd19792641588ec04eab49af18b7a4423eb99f \
|
||||||
PyQt6-sip==13.2.1 \
|
--hash=sha256:c0e91d0275d428496cacff717a9b719c52bfa52b21f124d638b79cc2217bc81e \
|
||||||
--hash=sha256:0314d011633bc697e99f3f9897b484720e81a5f4ba0eaa5f05c5811e2e74ea53 \
|
--hash=sha256:d19c4e72615762cd6f0b043f23fa5f0b02656091427ce6de1efccd58e10e6a53
|
||||||
--hash=sha256:082a80264699d4e2e919a7de8b6662886a353863d2b30a0047fe73d42e65c98e \
|
PyQt6-NetworkAuth==6.4.0 \
|
||||||
--hash=sha256:0a49f2d0bb49bc9d72665d62fb5ab6549c72dcf49e1e52dc2046edb8832a17a3 \
|
--hash=sha256:ab6178b3b2902ae9939a148555cfcee8c7803d6b0d5924cd1bd8f3407b8b9210 \
|
||||||
--hash=sha256:0ede42e84a79871022e1a8e4d5c05f70821b2795910c4cd103e863ce62bc8d68 \
|
--hash=sha256:c16ec80232d88024b60d04386a23cc93067e5644a65f47f26ffb13d84dcd4a6d \
|
||||||
--hash=sha256:226e9e349aa16dc1132f106ca01fa99cf7cb8e59daee29304c2fea5fa33212ec \
|
--hash=sha256:c302cd0d838c7229eda5e26e0b1b3d3ec4f8720f8d9379472bce5a89ff0735c2 \
|
||||||
--hash=sha256:43afd9c9fdbc5f6ed2e22cae0752a8b8d9545c6d85f314bd27b861e21d4a97fe \
|
--hash=sha256:d948fc0cf43b64afbda2acb5bf2392f785a1e7a2950d79ea850c1a3f4ae12f1a
|
||||||
--hash=sha256:4b119a8fd880ece15a5bdff583edccd89dbc79d49de2e11cbbd6bba72713d1f3 \
|
PyQt6-NetworkAuth-Qt6==6.4.2 \
|
||||||
--hash=sha256:616b6bad827e9c6e7ce5179883ca0f44110a42dcb045344aa28a495c05e19795 \
|
--hash=sha256:179094bcb4d4d056316c22d3d067cd94d4591da23f804461bfb025ccfa29b2b4 \
|
||||||
--hash=sha256:65f5aee6195bd0e785bd74f75ee080a5d5fb840c03210956e4ccbdde481b487c \
|
--hash=sha256:1de6abbb5fa6585b97ae49d3f64b0dfad40bd56b1a31744d9775ff26247241c8 \
|
||||||
--hash=sha256:8b52d42e42e6e9f934ac7528cd154ac0210a532bb33fa1edfb4a8bbfb73ff88b \
|
--hash=sha256:79ec4b0fc9450bbedbff03541b93b10d1c7e761cd2cc16ce70d2b09dcdf8c720 \
|
||||||
--hash=sha256:a3d53fab72f959b45aeb954124255b585ff8d497a514a2582e0afd808fc2f3da \
|
--hash=sha256:d96d557fe61edb9b68d189f270f0393d6579c8d308e6b0d41bc0699371d7cb4e
|
||||||
--hash=sha256:b0d92f4a21706b18ab80c088cded94cd64d32a0c48e1729a4cc53fe5ab93cc1a \
|
|
||||||
--hash=sha256:b7bce59900b2e0a04f70246de2ccf79ee7933036b6b9183cf039b62eeae2b858 \
|
|
||||||
--hash=sha256:c456d5ccc4478254052082e298db01bb9d0495471c1659046697bb5dc9d2506c \
|
|
||||||
--hash=sha256:e2e6a3972169891dbc33d806f50ebf17eaa47a487ff6e4910fe2485c47cb6c2b \
|
|
||||||
--hash=sha256:f4226d4ab239d8655f94c42b397f23e6e85b246f614ff81162ef9321e47f7619
|
|
||||||
certifi==2021.10.8 \
|
certifi==2021.10.8 \
|
||||||
--hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \
|
--hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \
|
||||||
--hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
|
--hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
"machine_center_is_zero": { "default_value": false },
|
"machine_center_is_zero": { "default_value": false },
|
||||||
"machine_depth": { "default_value": 220 },
|
"machine_depth": { "default_value": 220 },
|
||||||
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y215 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y215 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
||||||
"machine_gcode_flavor": { "default_value": "RepRap" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": false },
|
"machine_heated_bed": { "default_value": false },
|
||||||
"machine_height": { "default_value": 200 },
|
"machine_height": { "default_value": 200 },
|
||||||
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
"machine_center_is_zero": { "default_value": false },
|
"machine_center_is_zero": { "default_value": false },
|
||||||
"machine_depth": { "default_value": 310 },
|
"machine_depth": { "default_value": 310 },
|
||||||
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
||||||
"machine_gcode_flavor": { "default_value": "RepRap" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": false },
|
"machine_heated_bed": { "default_value": false },
|
||||||
"machine_height": { "default_value": 300 },
|
"machine_height": { "default_value": 300 },
|
||||||
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"machine_center_is_zero": { "default_value": false },
|
"machine_center_is_zero": { "default_value": false },
|
||||||
"machine_depth": { "default_value": 310 },
|
"machine_depth": { "default_value": 310 },
|
||||||
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --" },
|
||||||
"machine_gcode_flavor": { "default_value": "RepRap" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": false },
|
"machine_heated_bed": { "default_value": false },
|
||||||
"machine_height": { "default_value": 300 },
|
"machine_height": { "default_value": 300 },
|
||||||
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --" },
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
"machine_depth": { "default_value": 310 },
|
"machine_depth": { "default_value": 310 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nT0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nT0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 290 },
|
"machine_height": { "default_value": 290 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"machine_depth": { "default_value": 310 },
|
"machine_depth": { "default_value": 310 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 290 },
|
"machine_height": { "default_value": 290 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"machine_depth": { "default_value": 310 },
|
"machine_depth": { "default_value": 310 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 290 },
|
"machine_height": { "default_value": 290 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
"machine_depth": { "default_value": 300 },
|
"machine_depth": { "default_value": 300 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nT0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nT0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 293 },
|
"machine_height": { "default_value": 293 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"machine_depth": { "default_value": 300 },
|
"machine_depth": { "default_value": 300 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 293 },
|
"machine_height": { "default_value": 293 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"machine_depth": { "default_value": 300 },
|
"machine_depth": { "default_value": 300 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM107 P1\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 293 },
|
"machine_height": { "default_value": 293 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
"machine_depth": { "default_value": 300 },
|
"machine_depth": { "default_value": 300 },
|
||||||
"machine_end_gcode": { "default_value": "M104 T0 S0 ;extruder heater off\nM104 T1 S0 ;extruder heater off\nM140 S0 ;heated bed heater off\nG91\nG1 Z1 F420 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+1 E-1 F300 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y300 F6000 ;move the head out of the way\nM84 ;steppers off" },
|
"machine_end_gcode": { "default_value": "M104 T0 S0 ;extruder heater off\nM104 T1 S0 ;extruder heater off\nM140 S0 ;heated bed heater off\nG91\nG1 Z1 F420 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+1 E-1 F300 ;move Z up a bit and retract filament even more\nG90 ;absolute positioning\nG1 X0 Y300 F6000 ;move the head out of the way\nM84 ;steppers off" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
"machine_center_is_zero": { "default_value": true },
|
"machine_center_is_zero": { "default_value": true },
|
||||||
"machine_depth": { "default_value": 270 },
|
"machine_depth": { "default_value": 270 },
|
||||||
"machine_end_gcode": { "default_value": ";MACHINE END CODE\nG91 ;relative positioning\nG1 E-1 F300 ;retract filament release pressure\nG1 Z+1.0 E-5 F9000 ;move up a and retract more\nG90 ;absolute positioning\nG28; home\nM84 ;steppers off\n;MACHINE END CODE" },
|
"machine_end_gcode": { "default_value": ";MACHINE END CODE\nG91 ;relative positioning\nG1 E-1 F300 ;retract filament release pressure\nG1 Z+1.0 E-5 F9000 ;move up a and retract more\nG90 ;absolute positioning\nG28; home\nM84 ;steppers off\n;MACHINE END CODE" },
|
||||||
"machine_gcode_flavor": { "RepRap (Marlin/Sprinter)": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -40,7 +40,6 @@
|
||||||
"machine_max_jerk_z": { "value": 0.3 },
|
"machine_max_jerk_z": { "value": 0.3 },
|
||||||
"machine_nozzle_size": { "default_value": 0.4 },
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
"material_diameter": { "default_value": 1.75 },
|
"material_diameter": { "default_value": 1.75 },
|
||||||
"material_print_temperature_layer_0": { "value": "default_material_bed_temperature + 15" },
|
|
||||||
"optimize_wall_printing_order": { "value": true },
|
"optimize_wall_printing_order": { "value": true },
|
||||||
"relative_extrusion": { "value": true },
|
"relative_extrusion": { "value": true },
|
||||||
"retraction_amount": { "value": 1.2 },
|
"retraction_amount": { "value": 1.2 },
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"infill_before_walls": { "value": "False" },
|
"infill_before_walls": { "value": "False" },
|
||||||
"inset_direction": { "value": "'inside_out'" },
|
"inset_direction": { "value": "'inside_out'" },
|
||||||
"machine_depth": { "default_value": 320 },
|
"machine_depth": { "default_value": 320 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_width": { "default_value": 430 },
|
"machine_width": { "default_value": 430 },
|
||||||
"material_break_preparation_temperature": { "maximum_value": "430" },
|
"material_break_preparation_temperature": { "maximum_value": "430" },
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
"machine_center_is_zero": { "default_value": false },
|
"machine_center_is_zero": { "default_value": false },
|
||||||
"machine_depth": { "default_value": 220 },
|
"machine_depth": { "default_value": 220 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T0\nM140 S0\nM117\nG28 X0 Y0\nM84" },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 305 },
|
"machine_height": { "default_value": 305 },
|
||||||
"machine_max_feedrate_x": { "default_value": 300 },
|
"machine_max_feedrate_x": { "default_value": 300 },
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"machine_center_is_zero": { "default_value": true },
|
"machine_center_is_zero": { "default_value": true },
|
||||||
"machine_depth": { "default_value": 180 },
|
"machine_depth": { "default_value": 180 },
|
||||||
"machine_end_gcode": { "default_value": "; -- START GCODE --\nG28 ; Home all axes\nM104 S0 ;extruder heater off\n;M140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n;M84 ;steppers off\nG90 ;absolute positioning\n; -- end of START GCODE --" },
|
"machine_end_gcode": { "default_value": "; -- START GCODE --\nG28 ; Home all axes\nM104 S0 ;extruder heater off\n;M140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n;M84 ;steppers off\nG90 ;absolute positioning\n; -- end of START GCODE --" },
|
||||||
"machine_gcode_flavor": { "default_value": "RepRap" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": false },
|
"machine_heated_bed": { "default_value": false },
|
||||||
"machine_height": { "default_value": 200 },
|
"machine_height": { "default_value": 200 },
|
||||||
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 \nG29 Z0.12 ;Auto-bedleveling with Z offset \nG92 E0 ;zero the extruded length \nG1 F2000 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{speed_travel}\nM117 Printing...\n; -- end of START GCODE --" },
|
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 \nG29 Z0.12 ;Auto-bedleveling with Z offset \nG92 E0 ;zero the extruded length \nG1 F2000 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{speed_travel}\nM117 Printing...\n; -- end of START GCODE --" },
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
"machine_center_is_zero": { "default_value": false },
|
"machine_center_is_zero": { "default_value": false },
|
||||||
"machine_depth": { "default_value": 150 },
|
"machine_depth": { "default_value": 150 },
|
||||||
"machine_end_gcode": { "default_value": "G92 E10\nG1 E-10 F300\nG28 X0 Y0 ;move X Y to min endstops\nM82\nM84 ;steppers off\n" },
|
"machine_end_gcode": { "default_value": "G92 E10\nG1 E-10 F300\nG28 X0 Y0 ;move X Y to min endstops\nM82\nM84 ;steppers off\n" },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin (Marlin/Sprinter)" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": false },
|
"machine_heated_bed": { "default_value": false },
|
||||||
"machine_height": { "default_value": 240 },
|
"machine_height": { "default_value": 240 },
|
||||||
"machine_max_acceleration_e": { "value": 500 },
|
"machine_max_acceleration_e": { "value": 500 },
|
||||||
|
|
|
@ -1298,6 +1298,18 @@
|
||||||
"limit_to_extruder": "wall_0_extruder_nr",
|
"limit_to_extruder": "wall_0_extruder_nr",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
|
"hole_xy_offset_max_diameter":
|
||||||
|
{
|
||||||
|
"label": "Hole Horizontal Expansion Max Diameter",
|
||||||
|
"description": "When greater than zero, the Hole Horizontal Expansion is gradually applied on small holes (small holes are expanded more). When set to zero the Hole Horizontal Expansion will be applied to all holes. Holes larger than the Hole Horizontal Expansion Max Diameter are not expanded.",
|
||||||
|
"unit": "mm",
|
||||||
|
"type": "float",
|
||||||
|
"default_value": 0,
|
||||||
|
"minimum_value": "0",
|
||||||
|
"enabled": "hole_xy_offset > 0",
|
||||||
|
"limit_to_extruder": "wall_0_extruder_nr",
|
||||||
|
"settable_per_mesh": true
|
||||||
|
},
|
||||||
"z_seam_type":
|
"z_seam_type":
|
||||||
{
|
{
|
||||||
"label": "Z Seam Alignment",
|
"label": "Z Seam Alignment",
|
||||||
|
@ -1649,6 +1661,20 @@
|
||||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
|
"small_skin_width":
|
||||||
|
{
|
||||||
|
"label": "Small Top/Bottom Width",
|
||||||
|
"description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions.",
|
||||||
|
"value": "skin_line_width * 2",
|
||||||
|
"default_value": 1,
|
||||||
|
"minimum_value": "0",
|
||||||
|
"maximum_value_warning": "skin_line_width * 10",
|
||||||
|
"type": "float",
|
||||||
|
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
|
||||||
|
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||||
|
"settable_per_mesh": true,
|
||||||
|
"unit": "mm"
|
||||||
|
},
|
||||||
"skin_no_small_gaps_heuristic":
|
"skin_no_small_gaps_heuristic":
|
||||||
{
|
{
|
||||||
"label": "No Skin in Z Gaps",
|
"label": "No Skin in Z Gaps",
|
||||||
|
@ -4395,9 +4421,9 @@
|
||||||
"unit": "mm/s",
|
"unit": "mm/s",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default_value": 10,
|
"default_value": 10,
|
||||||
"enabled": "cool_min_layer_time > 0",
|
"minimum_value": "1",
|
||||||
"minimum_value": "0",
|
|
||||||
"maximum_value_warning": "100",
|
"maximum_value_warning": "100",
|
||||||
|
"enabled": "cool_min_layer_time > 0",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
|
@ -4419,8 +4445,10 @@
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"value": "material_print_temperature",
|
"value": "material_print_temperature",
|
||||||
"enabled": "cool_min_layer_time > 0",
|
"enabled": "cool_min_layer_time > 0",
|
||||||
"minimum_value": "max(material_final_print_temperature, material_initial_print_temperature)",
|
"minimum_value_warning": "max(material_final_print_temperature, material_initial_print_temperature)",
|
||||||
"maximum_value": "material_print_temperature",
|
"maximum_value_warning": "material_print_temperature",
|
||||||
|
"minimum_value": "-273.15",
|
||||||
|
"maximum_value": "365",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"settable_per_extruder": true
|
||||||
}
|
}
|
||||||
|
@ -5677,6 +5705,21 @@
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
|
"skirt_height":
|
||||||
|
{
|
||||||
|
"label": "Skirt Height",
|
||||||
|
"description": "Printing the innermost skirt line with multiple layers makes it easy to remove the skirt.",
|
||||||
|
"type": "int",
|
||||||
|
"default_value": 3,
|
||||||
|
"value": "3 if resolveOrValue('skirt_gap') > 0.0 else 1",
|
||||||
|
"minimum_value": "1",
|
||||||
|
"maximum_value_warning": "10",
|
||||||
|
"maximum_value": "machine_height / layer_height",
|
||||||
|
"enabled": "resolveOrValue('adhesion_type') == 'skirt'",
|
||||||
|
"limit_to_extruder": "skirt_brim_extruder_nr",
|
||||||
|
"settable_per_mesh": false,
|
||||||
|
"settable_per_extruder": true
|
||||||
|
},
|
||||||
"skirt_gap":
|
"skirt_gap":
|
||||||
{
|
{
|
||||||
"label": "Skirt Distance",
|
"label": "Skirt Distance",
|
||||||
|
@ -5787,6 +5830,17 @@
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true
|
"settable_per_extruder": true
|
||||||
},
|
},
|
||||||
|
"brim_smart_ordering":
|
||||||
|
{
|
||||||
|
"label": "Smart Brim",
|
||||||
|
"description": "Swap print order of the innermost and second innermost brim lines. This improves brim removal.",
|
||||||
|
"type": "bool",
|
||||||
|
"enabled": "resolveOrValue('adhesion_type') == 'brim'",
|
||||||
|
"default_value": true,
|
||||||
|
"limit_to_extruder": "skirt_brim_extruder_nr",
|
||||||
|
"settable_per_mesh": false,
|
||||||
|
"settable_per_extruder": false
|
||||||
|
},
|
||||||
"raft_margin":
|
"raft_margin":
|
||||||
{
|
{
|
||||||
"label": "Raft Extra Margin",
|
"label": "Raft Extra Margin",
|
||||||
|
@ -6909,7 +6963,7 @@
|
||||||
"interlocking_depth":
|
"interlocking_depth":
|
||||||
{
|
{
|
||||||
"label": "Interlocking Depth",
|
"label": "Interlocking Depth",
|
||||||
"description": "The distance from the boundary between models to generate interlocking structure measured in cells. Too few cells will result in poor adhesion.",
|
"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",
|
"type": "int",
|
||||||
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
|
||||||
"default_value": 2,
|
"default_value": 2,
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"machine_depth": { "default_value": 264 },
|
"machine_depth": { "default_value": 264 },
|
||||||
"machine_end_gcode": { "default_value": "G91 ; relative coordinates\nG1 E-1 F300 ; retract filament a bit before lifting\nG1 Z+5 E-5 F6000 ; raise platform from current position\nG28 X0 Y0 ; home axis\nG90 ; absolute coordinates\nG92 E0 ; reset extruder\nM104 S0 ; turn off hotend\nM140 S0 ; turn off heat bed\nM107 ; turn off fans\nM84 ; disable motors\n" },
|
"machine_end_gcode": { "default_value": "G91 ; relative coordinates\nG1 E-1 F300 ; retract filament a bit before lifting\nG1 Z+5 E-5 F6000 ; raise platform from current position\nG28 X0 Y0 ; home axis\nG90 ; absolute coordinates\nG92 E0 ; reset extruder\nM104 S0 ; turn off hotend\nM140 S0 ; turn off heat bed\nM107 ; turn off fans\nM84 ; disable motors\n" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
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,
|
"version": 2,
|
||||||
"name": "Geeetech A10M",
|
"name": "Geeetech A10M",
|
||||||
"inherits": "Geeetech_Base_Dual_Extruder",
|
"inherits": "fdmprinter",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"visible": true,
|
"visible": true,
|
||||||
|
"author": "Amit L",
|
||||||
|
"manufacturer": "Geeetech",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_materials": true,
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
{
|
{
|
||||||
"0": "Geeetech_Dual_Extruder_0",
|
"0": "geeetech_A10M_1",
|
||||||
"1": "Geeetech_Dual_Extruder_1"
|
"1": "geeetech_A10M_2"
|
||||||
},
|
}
|
||||||
"preferred_material": "Geeetech_PLA_Cyan"
|
|
||||||
},
|
},
|
||||||
"overrides":
|
"overrides":
|
||||||
{
|
{
|
||||||
"brim_width": { "value": 10 },
|
"adhesion_type": { "default_value": "skirt" },
|
||||||
"gantry_height": { "value": 28 },
|
"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_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":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -28,10 +37,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"machine_height": { "default_value": 260 },
|
"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_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 },
|
"machine_width": { "default_value": 220 },
|
||||||
"prime_tower_position_x": { "value": 190 },
|
"retraction_amount": { "default_value": 0.8 },
|
||||||
"prime_tower_position_y": { "value": 160 }
|
"retraction_speed": { "default_value": 35 }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,24 +1,33 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"name": "Geeetech A10T",
|
"name": "Geeetech A10T",
|
||||||
"inherits": "Geeetech_Base_Multi_Extruder",
|
"inherits": "fdmprinter",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"visible": true,
|
"visible": true,
|
||||||
|
"author": "Amit L",
|
||||||
|
"manufacturer": "Geeetech",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_materials": true,
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
{
|
{
|
||||||
"0": "Geeetech_Multi_Extruder_0",
|
"0": "geeetech_A10T_1",
|
||||||
"1": "Geeetech_Multi_Extruder_1",
|
"1": "geeetech_A10T_2",
|
||||||
"2": "Geeetech_Multi_Extruder_2"
|
"2": "geeetech_A10T_3"
|
||||||
},
|
}
|
||||||
"preferred_material": "Geeetech_PLA_Magenta"
|
|
||||||
},
|
},
|
||||||
"overrides":
|
"overrides":
|
||||||
{
|
{
|
||||||
"brim_width": { "value": 10 },
|
"adhesion_type": { "default_value": "skirt" },
|
||||||
"gantry_height": { "value": 28 },
|
"gantry_height": { "value": "28" },
|
||||||
"machine_depth": { "default_value": 220 },
|
"layer_height": { "default_value": 0.1 },
|
||||||
"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" },
|
"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":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -28,11 +37,17 @@
|
||||||
[-31, -40]
|
[-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_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 },
|
"machine_width": { "default_value": 220 },
|
||||||
"prime_tower_position_x": { "value": 190 },
|
"retraction_amount": { "default_value": 0.8 },
|
||||||
"prime_tower_position_y": { "value": 160 }
|
"retraction_speed": { "default_value": 35 }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,17 +1,28 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"name": "Geeetech A20",
|
"name": "Geeetech A20",
|
||||||
"inherits": "Geeetech_Base_Single_Extruder",
|
"inherits": "fdmprinter",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"visible": true,
|
"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":
|
"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_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":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -22,8 +33,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"machine_height": { "default_value": 250 },
|
"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_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_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 }
|
"machine_width": { "default_value": 250 },
|
||||||
|
"retraction_amount": { "default_value": 0.8 },
|
||||||
|
"retraction_speed": { "default_value": 35 }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,23 +1,32 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"name": "Geeetech A20M",
|
"name": "Geeetech A20M",
|
||||||
"inherits": "Geeetech_Base_Dual_Extruder",
|
"inherits": "fdmprinter",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"visible": true,
|
"visible": true,
|
||||||
|
"author": "Amit L",
|
||||||
|
"manufacturer": "Geeetech",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_materials": true,
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
{
|
{
|
||||||
"0": "Geeetech_Dual_Extruder_0",
|
"0": "geeetech_A20M_1",
|
||||||
"1": "Geeetech_Dual_Extruder_1"
|
"1": "geeetech_A20M_2"
|
||||||
},
|
}
|
||||||
"preferred_material": "Geeetech_PLA_Yellow"
|
|
||||||
},
|
},
|
||||||
"overrides":
|
"overrides":
|
||||||
{
|
{
|
||||||
"brim_width": { "value": 10 },
|
"adhesion_type": { "default_value": "skirt" },
|
||||||
"gantry_height": { "value": 35 },
|
"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_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":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -28,10 +37,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"machine_height": { "default_value": 250 },
|
"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_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 },
|
"machine_width": { "default_value": 250 },
|
||||||
"prime_tower_position_x": { "value": 220 },
|
"retraction_amount": { "default_value": 0.8 },
|
||||||
"prime_tower_position_y": { "value": 190 }
|
"retraction_speed": { "default_value": 35 }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,24 +1,33 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"name": "Geeetech A20T",
|
"name": "Geeetech A20T",
|
||||||
"inherits": "Geeetech_Base_Multi_Extruder",
|
"inherits": "fdmprinter",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"visible": true,
|
"visible": true,
|
||||||
|
"author": "Amit L",
|
||||||
|
"manufacturer": "Geeetech",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_materials": true,
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
{
|
{
|
||||||
"0": "Geeetech_Multi_Extruder_0",
|
"0": "geeetech_A20T_1",
|
||||||
"1": "Geeetech_Multi_Extruder_1",
|
"1": "geeetech_A20T_2",
|
||||||
"2": "Geeetech_Multi_Extruder_2"
|
"2": "geeetech_A20T_3"
|
||||||
},
|
}
|
||||||
"preferred_material": "Geeetech_PLA_Red"
|
|
||||||
},
|
},
|
||||||
"overrides":
|
"overrides":
|
||||||
{
|
{
|
||||||
"brim_width": { "value": 10 },
|
"adhesion_type": { "default_value": "skirt" },
|
||||||
"gantry_height": { "value": 35 },
|
"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_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":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -29,10 +38,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"machine_height": { "default_value": 250 },
|
"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_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 },
|
"machine_width": { "default_value": 250 },
|
||||||
"prime_tower_position_x": { "value": 220 },
|
"retraction_amount": { "default_value": 0.8 },
|
||||||
"prime_tower_position_y": { "value": 190 }
|
"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 }
|
||||||
|
}
|
||||||
|
}
|
26
resources/definitions/hellbot_magna_SE_300.def.json
Normal file
26
resources/definitions/hellbot_magna_SE_300.def.json
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Hellbot Magna SE 300",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"author": "Hellbot Development Team",
|
||||||
|
"manufacturer": "Hellbot",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "Hellbot_Magna_SE_300.obj",
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains": { "0": "hellbot_magna_SE_300_extruder" },
|
||||||
|
"platform_texture": "Hellbot_Magna_SE_300.png"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_depth": { "default_value": 300 },
|
||||||
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_height": { "default_value": 400 },
|
||||||
|
"machine_name": { "default_value": "Hellbot Magna SE 300" },
|
||||||
|
"machine_width": { "default_value": 300 }
|
||||||
|
}
|
||||||
|
}
|
26
resources/definitions/hellbot_magna_SE_Pro.def.json
Normal file
26
resources/definitions/hellbot_magna_SE_Pro.def.json
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Hellbot Magna SE Pro",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"author": "Hellbot Development Team",
|
||||||
|
"manufacturer": "Hellbot",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "Hellbot_Magna_SE_Pro.obj",
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains": { "0": "hellbot_magna_SE_Pro_extruder" },
|
||||||
|
"platform_texture": "Hellbot_magna_SE_Pro.png"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_depth": { "default_value": 230 },
|
||||||
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_height": { "default_value": 250 },
|
||||||
|
"machine_name": { "default_value": "Hellbot Magna SE Pro" },
|
||||||
|
"machine_width": { "default_value": 230 }
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,7 +36,7 @@
|
||||||
"machine_depth": { "default_value": 220 },
|
"machine_depth": { "default_value": 220 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nG28 X0 Y0\nT0\nM605 S1\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0 T1\nM104 S0 T0\nM140 S0\nG28 X0 Y0\nT0\nM605 S1\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 300 },
|
"machine_height": { "default_value": 300 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
"machine_depth": { "default_value": 220 },
|
"machine_depth": { "default_value": 220 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM605 S1\nG28 X\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM605 S1\nG28 X\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 300 },
|
"machine_height": { "default_value": 300 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
"machine_depth": { "default_value": 220 },
|
"machine_depth": { "default_value": 220 },
|
||||||
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM605 S1\nG28 X\nM84" },
|
"machine_end_gcode": { "default_value": "G91\nG1 Z+0.5 E-16 Y+10 F9000\nG90\nM107\nM104 S0\nM140 S0\nM117\nM605 S0\nG28 X0 Y0\nM605 S1\nG28 X\nM84" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 300 },
|
"machine_height": { "default_value": 300 },
|
||||||
"machine_max_feedrate_e": { "value": 150 },
|
"machine_max_feedrate_e": { "value": 150 },
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"machine_depth": { "default_value": 280 },
|
"machine_depth": { "default_value": 280 },
|
||||||
"machine_end_gcode": { "default_value": "M104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z200 F1200 ; drop bed\nG28 X0 ; home X axis\nM84 ; disable motors" },
|
"machine_end_gcode": { "default_value": "M104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z200 F1200 ; drop bed\nG28 X0 ; home X axis\nM84 ; disable motors" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"machine_depth": { "default_value": 280 },
|
"machine_depth": { "default_value": 280 },
|
||||||
"machine_end_gcode": { "default_value": "G92 E0 ; Zero extruder\nG1 E-6.00 F1500 ; Retract filament\nM104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z590 F1200 ; drop bed\nG28 X0 ; home X axis\nG1 Y270 F12000 ; Move Y axis to the backside\nM84 ; disable motors" },
|
"machine_end_gcode": { "default_value": "G92 E0 ; Zero extruder\nG1 E-6.00 F1500 ; Retract filament\nM104 S0 T0 ; turn off right extruder\nM104 S0 T1 ; turn off left extruder\nM140 S0 T0 ; turn off bed\nG1 Z590 F1200 ; drop bed\nG28 X0 ; home X axis\nG1 Y270 F12000 ; Move Y axis to the backside\nM84 ; disable motors" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
130
resources/definitions/lnl3d_base.def.json
Normal file
130
resources/definitions/lnl3d_base.def.json
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "LNL3D Printer",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"author": "LNL3D",
|
||||||
|
"manufacturer": "LNL3D",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"first_start_actions": ["MachineSettingsAction"],
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "lnl3d_extruder_left",
|
||||||
|
"1": "lnl3d_extruder_right"
|
||||||
|
},
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"preferred_quality_type": "standard",
|
||||||
|
"preferred_variant_name": "0.4mm Nozzle",
|
||||||
|
"quality_definition": "lnl3d_base",
|
||||||
|
"variants_name": "Nozzle Size"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"acceleration_print": { "value": 500 },
|
||||||
|
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
|
||||||
|
"acceleration_travel": { "value": 500 },
|
||||||
|
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
|
||||||
|
"adaptive_layer_height_variation": { "value": 0.04 },
|
||||||
|
"adaptive_layer_height_variation_step": { "value": 0.04 },
|
||||||
|
"adhesion_type": { "value": "'skirt'" },
|
||||||
|
"brim_width": { "value": 4 },
|
||||||
|
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||||
|
"cool_min_layer_time": { "value": 10 },
|
||||||
|
"fill_outline_gaps": { "value": false },
|
||||||
|
"infill_overlap": { "value": 30.0 },
|
||||||
|
"infill_pattern": { "value": "'lines'" },
|
||||||
|
"infill_wipe_dist": { "value": 0.0 },
|
||||||
|
"initial_layer_line_width_factor": { "default_value": 130.0 },
|
||||||
|
"jerk_print": { "value": 8 },
|
||||||
|
"jerk_travel": { "value": "jerk_print" },
|
||||||
|
"jerk_travel_layer_0": { "value": "jerk_travel" },
|
||||||
|
"layer_height_0": { "default_value": 0.2 },
|
||||||
|
"machine_acceleration": { "value": 500 },
|
||||||
|
"machine_end_gcode": { "default_value": "M104 T0 S0 ;left extruder heater off\nM104 T1 S0 ;right extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" },
|
||||||
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_max_acceleration_e": { "value": 5000 },
|
||||||
|
"machine_max_acceleration_x": { "value": 500 },
|
||||||
|
"machine_max_acceleration_y": { "value": 500 },
|
||||||
|
"machine_max_acceleration_z": { "value": 100 },
|
||||||
|
"machine_max_jerk_e": { "value": 5 },
|
||||||
|
"machine_max_jerk_xy": { "value": 10 },
|
||||||
|
"machine_max_jerk_z": { "value": 0.4 },
|
||||||
|
"machine_max_feedrate_e": { "value": 80 },
|
||||||
|
"machine_max_feedrate_x": { "value": 500 },
|
||||||
|
"machine_max_feedrate_y": { "value": 500 },
|
||||||
|
"machine_max_feedrate_z": { "value": 10 },
|
||||||
|
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;move to min endstops\nG92 E0 ;reset extruder\nG1 E15 F1500 ;move extruder 15mm\nG1 Z15.0 F3000 ;move the header up 15mm\nM117 printing... ;LCD message" },
|
||||||
|
"material_diameter": { "default_value": 1.75 },
|
||||||
|
"material_final_print_temperature": { "value": "material_print_temperature" },
|
||||||
|
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||||
|
"meshfix_maximum_resolution": { "value": "0.25" },
|
||||||
|
"meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" },
|
||||||
|
"minimum_interface_area": { "value": 10 },
|
||||||
|
"minimum_support_area": { "value": 2 },
|
||||||
|
"optimize_wall_printing_order": { "value": "True" },
|
||||||
|
"prime_tower_brim_enable": { "default_value": true },
|
||||||
|
"prime_tower_wipe_enabled": { "default_value": false },
|
||||||
|
"raft_airgap": { "default_value": 0.2 },
|
||||||
|
"raft_margin": {"default_value": 2 },
|
||||||
|
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" },
|
||||||
|
"retraction_count_max": { "value": 100 },
|
||||||
|
"retraction_extrusion_window": { "value": 4 },
|
||||||
|
"retraction_hop": { "value": 0.2 },
|
||||||
|
"retraction_hop_after_extruder_switch_height": { "value": 0.0 },
|
||||||
|
"retraction_hop_enabled": { "value": "False" },
|
||||||
|
"retraction_prime_speed":
|
||||||
|
{
|
||||||
|
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||||
|
"maximum_value": 200
|
||||||
|
},
|
||||||
|
"retraction_retract_speed":
|
||||||
|
{
|
||||||
|
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||||
|
"maximum_value": 200
|
||||||
|
},
|
||||||
|
"retraction_speed":
|
||||||
|
{
|
||||||
|
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||||
|
"maximum_value": 200
|
||||||
|
},
|
||||||
|
"skin_overlap": { "value": 25 },
|
||||||
|
"skirt_line_count": { "value": 2 },
|
||||||
|
"speed_layer_0": { "value": 20.0 },
|
||||||
|
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||||
|
"speed_support": { "value": "speed_wall_0" },
|
||||||
|
"speed_support_interface": { "value": "speed_topbottom" },
|
||||||
|
"speed_travel": { "value": "80.0 if speed_print < 61 else 120.0 if speed_print > 100 else speed_print * 1.5" },
|
||||||
|
"speed_travel_layer_0": { "value": "80 if speed_layer_0 < 21 else 100 if speed_layer_0 > 30 else speed_layer_0 * 5" },
|
||||||
|
"speed_wall_x": { "value": "speed_wall" },
|
||||||
|
"speed_z_hop": { "value": 5 },
|
||||||
|
"support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/1.4/layer_height)))" },
|
||||||
|
"support_brim_enable": { "value": true },
|
||||||
|
"support_brim_width": { "value": 4 },
|
||||||
|
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 20" },
|
||||||
|
"support_interface_density": { "value": 33.333 },
|
||||||
|
"support_interface_enable": { "value": true },
|
||||||
|
"support_interface_height": { "value": "layer_height * 4" },
|
||||||
|
"support_interface_pattern": { "value": "'grid'" },
|
||||||
|
"support_pattern": { "value": "'zigzag'" },
|
||||||
|
"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'" },
|
||||||
|
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
|
||||||
|
"switch_extruder_retraction_amount": { "value": 8.0 },
|
||||||
|
"switch_extruder_retraction_speeds": { "default_value": 60.0 },
|
||||||
|
"top_bottom_thickness": { "value": "layer_height_0 + layer_height * 4" },
|
||||||
|
"travel_avoid_other_parts": { "value": false },
|
||||||
|
"travel_avoid_supports": { "value": true },
|
||||||
|
"travel_retract_before_outer_wall": { "value": true },
|
||||||
|
"wall_0_wipe_dist": { "value": 0.0 },
|
||||||
|
"wall_thickness": { "value": "line_width * 2" },
|
||||||
|
"z_seam_type": { "value": "'back'" },
|
||||||
|
"z_seam_corner": { "value": "'z_seam_corner_weighted'" },
|
||||||
|
"zig_zaggify_infill": { "value": true }
|
||||||
|
}
|
||||||
|
}
|
20
resources/definitions/lnl3d_d3.def.json
Executable file
20
resources/definitions/lnl3d_d3.def.json
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "LNL3D D3",
|
||||||
|
"inherits": "lnl3d_base",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"platform": "lnl3d_d3.stl",
|
||||||
|
"platform_offset": [ 0, 0, 0 ]
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_depth": { "default_value": 300 },
|
||||||
|
"machine_height": { "default_value": 350 },
|
||||||
|
"machine_name": { "default_value": "LNL3D D3" },
|
||||||
|
"machine_width": { "default_value": 300 },
|
||||||
|
"prime_tower_position_x": { "value": "155" },
|
||||||
|
"prime_tower_position_y": { "value": "155" }
|
||||||
|
}
|
||||||
|
}
|
20
resources/definitions/lnl3d_d3_vulcan.def.json
Executable file
20
resources/definitions/lnl3d_d3_vulcan.def.json
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "LNL3D D3 Vulcan",
|
||||||
|
"inherits": "lnl3d_base",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"platform": "lnl3d_d3.stl",
|
||||||
|
"platform_offset": [ 0, 0, 0 ]
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_depth": { "default_value": 300 },
|
||||||
|
"machine_height": { "default_value": 320 },
|
||||||
|
"machine_name": { "default_value": "LNL3D D3 Vulcan" },
|
||||||
|
"machine_width": { "default_value": 295 },
|
||||||
|
"prime_tower_position_x": { "value": "155" },
|
||||||
|
"prime_tower_position_y": { "value": "155" }
|
||||||
|
}
|
||||||
|
}
|
24
resources/definitions/lnl3d_d5.def.json
Executable file
24
resources/definitions/lnl3d_d5.def.json
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "LNL3D D5",
|
||||||
|
"inherits": "lnl3d_base",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"platform": "lnl3d_d5.stl",
|
||||||
|
"platform_offset": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_depth": { "default_value": 500 },
|
||||||
|
"machine_height": { "default_value": 600 },
|
||||||
|
"machine_name": { "default_value": "LNL3D D5" },
|
||||||
|
"machine_width": { "default_value": 500 },
|
||||||
|
"prime_tower_position_x": { "value": "155" },
|
||||||
|
"prime_tower_position_y": { "value": "155" }
|
||||||
|
}
|
||||||
|
}
|
24
resources/definitions/lnl3d_d6.def.json
Normal file
24
resources/definitions/lnl3d_d6.def.json
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "LNL3D D6",
|
||||||
|
"inherits": "lnl3d_base",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"platform": "lnl3d_d6.3mf",
|
||||||
|
"platform_offset": [
|
||||||
|
5,
|
||||||
|
296.5,
|
||||||
|
-162.5
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"machine_depth": { "default_value": 600 },
|
||||||
|
"machine_height": { "default_value": 600 },
|
||||||
|
"machine_name": { "default_value": "LNL3D D6" },
|
||||||
|
"machine_width": { "default_value": 600 },
|
||||||
|
"prime_tower_position_x": { "value": "155" },
|
||||||
|
"prime_tower_position_y": { "value": "155" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,7 +18,7 @@
|
||||||
"machine_depth": { "default_value": 225 },
|
"machine_depth": { "default_value": 225 },
|
||||||
"machine_end_gcode": { "default_value": "; Mcreate end Gcode \nG4 ; Wait command in buffer have finished \nG92 E0 \nG1 E-2 F300; retract filament \nG28 X Z; home x z axis \nG1 F3000 Y220;Move Heat Bed to the front for easy print removal \nM104 S0; Turn off the nozzle heat \nM140 S0; Turn off the bed heat \nM107 ; Turn off the Fan \nM84 ; Disable stepper motors \n; End of GCode" },
|
"machine_end_gcode": { "default_value": "; Mcreate end Gcode \nG4 ; Wait command in buffer have finished \nG92 E0 \nG1 E-2 F300; retract filament \nG28 X Z; home x z axis \nG1 F3000 Y220;Move Heat Bed to the front for easy print removal \nM104 S0; Turn off the nozzle heat \nM140 S0; Turn off the bed heat \nM107 ; Turn off the Fan \nM84 ; Disable stepper motors \n; End of GCode" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
118
resources/definitions/mixware_hyper_k.def.json
Normal file
118
resources/definitions/mixware_hyper_k.def.json
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Hyper K",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"author": "Mixware",
|
||||||
|
"manufacturer": "Mixware",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "mixware_hyper_k_platform.stl",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains": { "0": "mixware_hyper_k_extruder_0" },
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"preferred_quality": "coarse"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"acceleration_print": { "value": 500 },
|
||||||
|
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
|
||||||
|
"acceleration_travel": { "value": 500 },
|
||||||
|
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
|
||||||
|
"adaptive_layer_height_variation": { "value": 0.04 },
|
||||||
|
"adaptive_layer_height_variation_step": { "value": 0.04 },
|
||||||
|
"adhesion_type": { "value": "'skirt'" },
|
||||||
|
"brim_replaces_support": { "value": false },
|
||||||
|
"brim_width": { "default_value": 3 },
|
||||||
|
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||||
|
"cool_min_layer_time": { "value": 10 },
|
||||||
|
"fill_outline_gaps": { "value": false },
|
||||||
|
"gantry_height": { "value": 25 },
|
||||||
|
"infill_before_walls": { "value": false },
|
||||||
|
"infill_overlap": { "value": 30.0 },
|
||||||
|
"infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'" },
|
||||||
|
"infill_wipe_dist": { "value": 0.0 },
|
||||||
|
"ironing_line_spacing": { "default_value": 0.4 },
|
||||||
|
"ironing_pattern": { "default_value": "concentric" },
|
||||||
|
"jerk_print": { "value": 8 },
|
||||||
|
"jerk_travel": { "value": "jerk_print" },
|
||||||
|
"jerk_travel_layer_0": { "value": "jerk_travel" },
|
||||||
|
"machine_acceleration": { "value": 500 },
|
||||||
|
"machine_depth": { "default_value": 225 },
|
||||||
|
"machine_end_gcode": { "default_value": "G91; relative positioning\nG1 Z1.0 F3000 ; move z up little to prevent scratching of print\nG90; absolute positioning\nG1 X0 Y200 F1000 ; prepare for part removal\nM104 S0; turn off extruder\nM140 S0 ; turn off bed\nG1 X0 Y220 F1000 ; prepare for part removal\nM84 ; disable motors\nM106 S0 ; turn off fan" },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_height": { "default_value": 250 },
|
||||||
|
"machine_max_acceleration_e": { "value": 5000 },
|
||||||
|
"machine_max_acceleration_x": { "value": 500 },
|
||||||
|
"machine_max_acceleration_y": { "value": 500 },
|
||||||
|
"machine_max_acceleration_z": { "value": 100 },
|
||||||
|
"machine_max_feedrate_e": { "value": 50 },
|
||||||
|
"machine_max_feedrate_x": { "value": 500 },
|
||||||
|
"machine_max_feedrate_y": { "value": 500 },
|
||||||
|
"machine_max_feedrate_z": { "value": 10 },
|
||||||
|
"machine_max_jerk_e": { "value": 5 },
|
||||||
|
"machine_max_jerk_xy": { "value": 10 },
|
||||||
|
"machine_max_jerk_z": { "value": 0.4 },
|
||||||
|
"machine_name": { "default_value": "Hyper K" },
|
||||||
|
"machine_start_gcode": { "default_value": "M140 S{material_bed_temperature} ; Heat bed\nM109 S{material_print_temperature} ; Heat nozzle\nM190 S{material_bed_temperature} ; Wait for bed heating\nG28 ; home all axes\nM117 Purge extruder\nG92 E0 ; reset extruder\nG1 Z5.0 F1000 ; move z up little to prevent scratching of surface\nG1 X0.1 Y20 Z0.3 F5000.0 ; move to start-line position\nG1 X0.1 Y100.0 Z0.3 F1500.0 E15 ; draw 1st line\nG1 X0.4 Y100.0 Z0.3 F5000.0 ; move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; draw 2nd line\nG92 E0 ; reset extruder\nG1 Z5.0 F1000 ; move z up little to prevent scratching of surface" },
|
||||||
|
"machine_width": { "default_value": 225 },
|
||||||
|
"material_diameter": { "default_value": 1.75 },
|
||||||
|
"material_final_print_temperature": { "value": "material_print_temperature" },
|
||||||
|
"material_initial_print_temperature": { "value": "material_print_temperature" },
|
||||||
|
"meshfix_maximum_resolution": { "value": "0.25" },
|
||||||
|
"meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" },
|
||||||
|
"minimum_interface_area": { "value": 10 },
|
||||||
|
"minimum_support_area": { "value": 2 },
|
||||||
|
"optimize_wall_printing_order": { "value": "True" },
|
||||||
|
"raft_airgap": { "default_value": 0.24 },
|
||||||
|
"raft_margin":
|
||||||
|
{
|
||||||
|
"default_value": 3,
|
||||||
|
"minimum_value_warning": "0.01"
|
||||||
|
},
|
||||||
|
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'noskin'" },
|
||||||
|
"retraction_combing_max_distance": { "value": 30 },
|
||||||
|
"retraction_count_max": { "value": 100 },
|
||||||
|
"retraction_extrusion_window": { "value": 10 },
|
||||||
|
"retraction_hop": { "value": 0.2 },
|
||||||
|
"retraction_prime_speed": { "maximum_value": 200 },
|
||||||
|
"retraction_retract_speed": { "maximum_value": 200 },
|
||||||
|
"retraction_speed": { "maximum_value": 200 },
|
||||||
|
"skin_overlap": { "value": 10.0 },
|
||||||
|
"skirt_gap": { "value": 10.0 },
|
||||||
|
"skirt_line_count": { "value": 3 },
|
||||||
|
"speed_layer_0": { "value": 20.0 },
|
||||||
|
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||||
|
"speed_print": { "value": 50.0 },
|
||||||
|
"speed_support": { "value": "speed_wall_0" },
|
||||||
|
"speed_support_interface": { "value": "speed_topbottom" },
|
||||||
|
"speed_travel": { "value": "120.0 if speed_print < 60 else 240.0 if speed_print > 100 else speed_print * 2.5" },
|
||||||
|
"speed_travel_layer_0": { "value": "60 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" },
|
||||||
|
"speed_z_hop": { "value": 5 },
|
||||||
|
"support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" },
|
||||||
|
"support_brim_enable": { "value": true },
|
||||||
|
"support_brim_width": { "value": 4 },
|
||||||
|
"support_enable": { "default_value": true },
|
||||||
|
"support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 15" },
|
||||||
|
"support_interface_density": { "value": 33.333 },
|
||||||
|
"support_interface_enable": { "value": true },
|
||||||
|
"support_interface_height": { "value": "layer_height * 4" },
|
||||||
|
"support_interface_pattern": { "value": "'grid'" },
|
||||||
|
"support_type": { "default_value": "buildplate" },
|
||||||
|
"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'" },
|
||||||
|
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" },
|
||||||
|
"top_bottom_pattern": { "default_value": "zigzag" },
|
||||||
|
"top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" },
|
||||||
|
"travel_avoid_supports": { "value": true },
|
||||||
|
"travel_retract_before_outer_wall": { "value": true },
|
||||||
|
"wall_0_wipe_dist": { "value": 0.0 },
|
||||||
|
"wall_thickness": { "value": "line_width * 2" },
|
||||||
|
"z_seam_corner": { "value": "'z_seam_corner_weighted'" },
|
||||||
|
"z_seam_type": { "value": "'back'" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -78,10 +78,9 @@
|
||||||
"minimum_value_warning": "0.01"
|
"minimum_value_warning": "0.01"
|
||||||
},
|
},
|
||||||
"retraction_amount": { "default_value": 2 },
|
"retraction_amount": { "default_value": 2 },
|
||||||
"retraction_combing": { "value": "all" },
|
"retraction_combing": { "value": "off" },
|
||||||
"retraction_combing_max_distance": { "default_value": 30 },
|
"retraction_combing_max_distance": { "default_value": 0.5 },
|
||||||
"retraction_count_max": { "default_value": 100 },
|
"retraction_count_max": { "default_value": 100 },
|
||||||
"retraction_enable": { "default_value": true },
|
|
||||||
"retraction_extrusion_window":
|
"retraction_extrusion_window":
|
||||||
{
|
{
|
||||||
"maximum_value_warning": "20",
|
"maximum_value_warning": "20",
|
||||||
|
@ -106,29 +105,22 @@
|
||||||
"maximum_value": "200",
|
"maximum_value": "200",
|
||||||
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')"
|
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')"
|
||||||
},
|
},
|
||||||
"skin_no_small_gaps_heuristic": { "default_value": false },
|
|
||||||
"skin_overlap": { "value": 10.0 },
|
"skin_overlap": { "value": 10.0 },
|
||||||
"skirt_brim_speed": { "value": "speed_layer_0" },
|
|
||||||
"skirt_gap": { "default_value": 8.0 },
|
|
||||||
"skirt_line_count": { "default_value": 3 },
|
"skirt_line_count": { "default_value": 3 },
|
||||||
"speed_layer_0": { "value": "speed_print / 2" },
|
|
||||||
"speed_prime_tower": { "value": "speed_topbottom" },
|
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||||
"speed_print": { "default_value": 40.0 },
|
"speed_print": { "default_value": 40.0 },
|
||||||
"speed_roofing": { "value": "speed_topbottom" },
|
|
||||||
"speed_support": { "value": "speed_wall_0" },
|
"speed_support": { "value": "speed_wall_0" },
|
||||||
"speed_support_interface": { "value": "speed_topbottom" },
|
"speed_support_interface": { "value": "speed_topbottom" },
|
||||||
"speed_topbottom": { "value": "speed_print / 2" },
|
"speed_topbottom": { "value": "speed_print / 2" },
|
||||||
"speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" },
|
"speed_travel": { "value": "120.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" },
|
||||||
"speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" },
|
"speed_travel_layer_0": { "value": "60 if speed_layer_0 < 20 else 120 if speed_layer_0 > 30 else speed_layer_0 * 5" },
|
||||||
"speed_wall_0": { "value": "speed_wall" },
|
|
||||||
"speed_wall_x": { "value": "speed_wall" },
|
"speed_wall_x": { "value": "speed_wall" },
|
||||||
"speed_z_hop": { "default_value": 5 },
|
"speed_z_hop": { "default_value": 5 },
|
||||||
"support_angle": { "default_value": 60 },
|
"support_angle": { "default_value": 60 },
|
||||||
"support_brim_enable": { "value": false },
|
"support_bottom_stair_step_height": { "value": 0.2 },
|
||||||
"support_brim_width": { "default_value": 4 },
|
"support_brim_width": { "default_value": 4 },
|
||||||
"support_enable": { "default_value": true },
|
"support_enable": { "default_value": true },
|
||||||
"support_infill_rate": { "value": 15 },
|
"support_interface_density": { "default_value": 80 },
|
||||||
"support_interface_density": { "default_value": 33.333 },
|
|
||||||
"support_interface_enable": { "default_value": true },
|
"support_interface_enable": { "default_value": true },
|
||||||
"support_interface_height": { "value": "layer_height * 4" },
|
"support_interface_height": { "value": "layer_height * 4" },
|
||||||
"support_interface_pattern": { "default_value": "grid" },
|
"support_interface_pattern": { "default_value": "grid" },
|
||||||
|
@ -138,14 +130,14 @@
|
||||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||||
"support_xy_overrides_z": { "default_value": "xy_overrides_z" },
|
"support_xy_overrides_z": { "default_value": "xy_overrides_z" },
|
||||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" },
|
"support_z_distance": { "value": "layer_height" },
|
||||||
"top_bottom_pattern": { "default_value": "zigzag" },
|
"top_bottom_pattern": { "default_value": "zigzag" },
|
||||||
"top_bottom_thickness": { "default_value": 0.8 },
|
|
||||||
"travel_avoid_other_parts": { "default_value": false },
|
"travel_avoid_other_parts": { "default_value": false },
|
||||||
"travel_avoid_supports": { "default_value": true },
|
"travel_avoid_supports": { "default_value": true },
|
||||||
"travel_retract_before_outer_wall": { "default_value": true },
|
"travel_retract_before_outer_wall": { "default_value": true },
|
||||||
"wall_0_wipe_dist": { "value": 0.0 },
|
"wall_0_wipe_dist": { "value": 0.0 },
|
||||||
"wall_thickness": { "value": "line_width * 2" },
|
"wall_thickness": { "value": "line_width * 2" },
|
||||||
"z_seam_type": { "default_value": "shortest" }
|
"z_seam_corner": { "default_value": "z_seam_corner_weighted" },
|
||||||
|
"z_seam_type": { "default_value": "back" }
|
||||||
}
|
}
|
||||||
}
|
}
|
149
resources/definitions/mixware_vulcan.def.json
Normal file
149
resources/definitions/mixware_vulcan.def.json
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Vulcan",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"author": "Mixware",
|
||||||
|
"manufacturer": "Mixware",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "mixware_vulcan_platform.stl",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": false,
|
||||||
|
"machine_extruder_trains": { "0": "mixware_vulcan_extruder_0" },
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"preferred_quality": "coarse"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"acceleration_enabled": { "default_value": true },
|
||||||
|
"acceleration_print": { "default_value": 500 },
|
||||||
|
"acceleration_travel": { "value": 500 },
|
||||||
|
"adhesion_type": { "default_value": "raft" },
|
||||||
|
"brim_width":
|
||||||
|
{
|
||||||
|
"default_value": 5,
|
||||||
|
"maximum_warning_value": "10",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"infill_before_walls": { "default_value": false },
|
||||||
|
"layer_height":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "0.3",
|
||||||
|
"minimum_warning_value": "0.05"
|
||||||
|
},
|
||||||
|
"machine_center_is_zero": { "default_value": true },
|
||||||
|
"machine_depth": { "default_value": 240 },
|
||||||
|
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28\nM84" },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_height": { "default_value": 250 },
|
||||||
|
"machine_name": { "default_value": "Vulcan" },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"machine_shape": { "default_value": "elliptic" },
|
||||||
|
"machine_start_gcode": { "default_value": "G28 ;Home\nG1 Z15.0 F6000 ;Move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0" },
|
||||||
|
"machine_width": { "default_value": 240 },
|
||||||
|
"material_bed_temperature":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "105",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"material_diameter": { "default_value": 1.75 },
|
||||||
|
"material_print_temperature":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "250",
|
||||||
|
"minimum_warning_value": "180",
|
||||||
|
"value": 200
|
||||||
|
},
|
||||||
|
"optimize_wall_printing_order": { "default_value": true },
|
||||||
|
"raft_airgap":
|
||||||
|
{
|
||||||
|
"default_value": 0.24,
|
||||||
|
"maximum_warning_value": "0.3",
|
||||||
|
"minimum_warning_value": "0.2"
|
||||||
|
},
|
||||||
|
"raft_margin":
|
||||||
|
{
|
||||||
|
"default_value": 3,
|
||||||
|
"maximum_warning_value": "10",
|
||||||
|
"minimum_warning_value": "0",
|
||||||
|
"minimum_warning_value_warning": "0.01"
|
||||||
|
},
|
||||||
|
"retraction_amount":
|
||||||
|
{
|
||||||
|
"default_value": 5.5,
|
||||||
|
"maximum_warning_value": "5.5",
|
||||||
|
"minimum_warning_value": "4"
|
||||||
|
},
|
||||||
|
"retraction_extrusion_window":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "5.5",
|
||||||
|
"minimum_warning_value": "4"
|
||||||
|
},
|
||||||
|
"retraction_prime_speed":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40",
|
||||||
|
"value": 40
|
||||||
|
},
|
||||||
|
"retraction_retract_speed":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40",
|
||||||
|
"value": 40
|
||||||
|
},
|
||||||
|
"retraction_speed":
|
||||||
|
{
|
||||||
|
"default_value": 40,
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40"
|
||||||
|
},
|
||||||
|
"skirt_gap":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "5",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"speed_print":
|
||||||
|
{
|
||||||
|
"default_value": 40,
|
||||||
|
"maximum_warning_value": "60",
|
||||||
|
"minimum_warning_value": "5"
|
||||||
|
},
|
||||||
|
"speed_travel":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "150",
|
||||||
|
"minimum_warning_value": "80",
|
||||||
|
"value": 80
|
||||||
|
},
|
||||||
|
"support_enable": { "default_value": true },
|
||||||
|
"support_infill_rate": { "value": 20 },
|
||||||
|
"support_interface_enable": { "default_value": true },
|
||||||
|
"support_offset": { "value": 0.2 },
|
||||||
|
"support_roof_enable": { "value": true },
|
||||||
|
"support_top_distance":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "0.25",
|
||||||
|
"minimum_warning_value": "0.15",
|
||||||
|
"value": 0.25
|
||||||
|
},
|
||||||
|
"support_z_distance":
|
||||||
|
{
|
||||||
|
"default_value": 0.25,
|
||||||
|
"maximum_warning_value": "0.25",
|
||||||
|
"minimum_warning_value": "0.15"
|
||||||
|
},
|
||||||
|
"top_bottom_thickness":
|
||||||
|
{
|
||||||
|
"default_value": 1.0,
|
||||||
|
"maximum_warning_value": "2",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"travel_avoid_other_parts": { "default_value": false },
|
||||||
|
"wall_thickness":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "2",
|
||||||
|
"minimum_warning_value": "0.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
147
resources/definitions/mixware_wand.def.json
Normal file
147
resources/definitions/mixware_wand.def.json
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Wand",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"author": "Mixware",
|
||||||
|
"manufacturer": "Mixware",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "mixware_wand_platform.stl",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": false,
|
||||||
|
"machine_extruder_trains": { "0": "mixware_wand_extruder_0" },
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"preferred_quality": "coarse"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"acceleration_enabled": { "default_value": true },
|
||||||
|
"acceleration_print": { "default_value": 500 },
|
||||||
|
"acceleration_travel": { "value": 500 },
|
||||||
|
"adhesion_type": { "default_value": "raft" },
|
||||||
|
"brim_width":
|
||||||
|
{
|
||||||
|
"default_value": 3,
|
||||||
|
"maximum_warning_value": "3",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"infill_before_walls": { "default_value": false },
|
||||||
|
"layer_height":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "0.2",
|
||||||
|
"minimum_warning_value": "0.05"
|
||||||
|
},
|
||||||
|
"machine_depth": { "default_value": 102 },
|
||||||
|
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E3 F300\nG1 F1500 Z100\nG28 X0 Y0\nM25\nM84" },
|
||||||
|
"machine_height": { "default_value": 102 },
|
||||||
|
"machine_name": { "default_value": "Wand" },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"machine_start_gcode": { "default_value": "G28 ;Home\n;Prime the extruder\nM117 Print\nG92 E0\nG1 F1500 X-2 Y0 Z0.28\nG1 F2400 X-2 Y70 Z0.28 E8\nG1 F1500 X-1.7 Y70 Z0.28\nG1 F2400 X-1.7 Y0 Z0.28 E16\nG92 E0\nG92 E0\nG1 Z0.18 F2400 ;Move Z Axis up" },
|
||||||
|
"machine_width": { "default_value": 102 },
|
||||||
|
"material_bed_temperature": { "value": 0 },
|
||||||
|
"material_print_temperature":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "220",
|
||||||
|
"minimum_warning_value": "180",
|
||||||
|
"value": 200
|
||||||
|
},
|
||||||
|
"optimize_wall_printing_order": { "default_value": true },
|
||||||
|
"raft_airgap":
|
||||||
|
{
|
||||||
|
"default_value": 0.23,
|
||||||
|
"maximum_warning_value": "0.3",
|
||||||
|
"minimum_warning_value": "0.2"
|
||||||
|
},
|
||||||
|
"raft_base_line_spacing": { "value": 1.0 },
|
||||||
|
"raft_base_thickness": { "value": 0.36 },
|
||||||
|
"raft_margin":
|
||||||
|
{
|
||||||
|
"default_value": 1,
|
||||||
|
"minimum_warning_value": "0",
|
||||||
|
"minimum_warning_value_warning": "0.01"
|
||||||
|
},
|
||||||
|
"retraction_amount":
|
||||||
|
{
|
||||||
|
"default_value": 4,
|
||||||
|
"maximum_warning_value": "5.5",
|
||||||
|
"minimum_warning_value": "2"
|
||||||
|
},
|
||||||
|
"retraction_extrusion_window":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "5.5",
|
||||||
|
"minimum_warning_value": "2",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
"retraction_prime_speed":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40",
|
||||||
|
"value": 40
|
||||||
|
},
|
||||||
|
"retraction_retract_speed":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40",
|
||||||
|
"value": 40
|
||||||
|
},
|
||||||
|
"retraction_speed":
|
||||||
|
{
|
||||||
|
"default_value": 40,
|
||||||
|
"maximum_warning_value": "55",
|
||||||
|
"minimum_warning_value": "40"
|
||||||
|
},
|
||||||
|
"skirt_gap":
|
||||||
|
{
|
||||||
|
"default_value": 2,
|
||||||
|
"maximum_warning_value": "2",
|
||||||
|
"minimum_warning_value": "0"
|
||||||
|
},
|
||||||
|
"speed_print":
|
||||||
|
{
|
||||||
|
"default_value": 40,
|
||||||
|
"maximum_warning_value": "71",
|
||||||
|
"minimum_warning_value": "20"
|
||||||
|
},
|
||||||
|
"speed_travel":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "120",
|
||||||
|
"minimum_warning_value": "80",
|
||||||
|
"value": 80
|
||||||
|
},
|
||||||
|
"support_angle": { "default_value": 60 },
|
||||||
|
"support_enable": { "default_value": true },
|
||||||
|
"support_infill_rate": { "value": 20 },
|
||||||
|
"support_interface_enable": { "default_value": true },
|
||||||
|
"support_offset": { "value": 0.2 },
|
||||||
|
"support_roof_enable": { "value": true },
|
||||||
|
"support_top_distance":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "0.25",
|
||||||
|
"minimum_warning_value": "0.15",
|
||||||
|
"value": 0.25
|
||||||
|
},
|
||||||
|
"support_z_distance":
|
||||||
|
{
|
||||||
|
"default_value": 0.25,
|
||||||
|
"maximum_warning_value": "0.25",
|
||||||
|
"minimum_warning_value": "0.15"
|
||||||
|
},
|
||||||
|
"top_bottom_thickness":
|
||||||
|
{
|
||||||
|
"default_value": 1.0,
|
||||||
|
"maximum_warning_value": "2"
|
||||||
|
},
|
||||||
|
"travel_avoid_other_parts": { "default_value": false },
|
||||||
|
"travel_retract_before_outer_wall": { "value": true },
|
||||||
|
"wall_thickness":
|
||||||
|
{
|
||||||
|
"maximum_warning_value": "1.6",
|
||||||
|
"minimum_warning_value": "0.4"
|
||||||
|
},
|
||||||
|
"z_seam_type": { "default_value": "back" },
|
||||||
|
"z_seam_y": { "value": 99 }
|
||||||
|
}
|
||||||
|
}
|
34
resources/definitions/snapmaker2_A150_dual.def.json
Normal file
34
resources/definitions/snapmaker2_A150_dual.def.json
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Snapmaker 2 A150 Dual Extruder",
|
||||||
|
"inherits": "snapmaker2_dual",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"manufacturer": "Snapmaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "snapmaker_dual_extruder_0",
|
||||||
|
"1": "snapmaker_dual_extruder_1"
|
||||||
|
},
|
||||||
|
"quality_definition": "snapmaker2"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"gantry_height": { "value": 27 },
|
||||||
|
"machine_depth": { "default_value": 160 },
|
||||||
|
"machine_head_with_fans_polygon":
|
||||||
|
{
|
||||||
|
"default_value": [
|
||||||
|
[-67, 22],
|
||||||
|
[-67, -25],
|
||||||
|
[25.5, 22],
|
||||||
|
[25.5, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"machine_height": { "default_value": 145 },
|
||||||
|
"machine_name": { "default_value": "Snapmaker A150" },
|
||||||
|
"machine_width": { "default_value": 160 }
|
||||||
|
}
|
||||||
|
}
|
34
resources/definitions/snapmaker2_A250_dual.def.json
Normal file
34
resources/definitions/snapmaker2_A250_dual.def.json
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Snapmaker 2 A250 Dual Extruder",
|
||||||
|
"inherits": "snapmaker2_dual",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"manufacturer": "Snapmaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "snapmaker_dual_extruder_0",
|
||||||
|
"1": "snapmaker_dual_extruder_1"
|
||||||
|
},
|
||||||
|
"quality_definition": "snapmaker2"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"gantry_height": { "value": 27 },
|
||||||
|
"machine_depth": { "default_value": 250 },
|
||||||
|
"machine_head_with_fans_polygon":
|
||||||
|
{
|
||||||
|
"default_value": [
|
||||||
|
[-67, 22],
|
||||||
|
[-67, -25],
|
||||||
|
[25.5, 22],
|
||||||
|
[25.5, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"machine_height": { "default_value": 235 },
|
||||||
|
"machine_name": { "default_value": "Snapmaker A250" },
|
||||||
|
"machine_width": { "default_value": 230 }
|
||||||
|
}
|
||||||
|
}
|
34
resources/definitions/snapmaker2_A350_dual.def.json
Normal file
34
resources/definitions/snapmaker2_A350_dual.def.json
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Snapmaker 2 A350 Dual Extruder",
|
||||||
|
"inherits": "snapmaker2_dual",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": true,
|
||||||
|
"manufacturer": "Snapmaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "snapmaker_dual_extruder_0",
|
||||||
|
"1": "snapmaker_dual_extruder_1"
|
||||||
|
},
|
||||||
|
"quality_definition": "snapmaker2"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"gantry_height": { "value": 27 },
|
||||||
|
"machine_depth": { "default_value": 350 },
|
||||||
|
"machine_head_with_fans_polygon":
|
||||||
|
{
|
||||||
|
"default_value": [
|
||||||
|
[-67, 22],
|
||||||
|
[-67, -25],
|
||||||
|
[25.5, 22],
|
||||||
|
[25.5, -25]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"machine_height": { "default_value": 330 },
|
||||||
|
"machine_name": { "default_value": "Snapmaker A350" },
|
||||||
|
"machine_width": { "default_value": 320 }
|
||||||
|
}
|
||||||
|
}
|
42
resources/definitions/snapmaker2_dual.def.json
Normal file
42
resources/definitions/snapmaker2_dual.def.json
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Snapmaker 2",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"visible": false,
|
||||||
|
"manufacturer": "Snapmaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"exclude_materials": [],
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "snapmaker_dual_extruder_0",
|
||||||
|
"1": "snapmaker_dual_extruder_1"
|
||||||
|
},
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"preferred_quality_type": "normal"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"default_material_print_temperature": { "default_value": 205 },
|
||||||
|
"machine_acceleration": { "default_value": 1000 },
|
||||||
|
"machine_buildplate_type": { "default_value": "aluminum" },
|
||||||
|
"machine_end_gcode": { "default_value": "M104 S0 ;Extruder heater off\nM140 S0 ;Heated bed heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z{machine_height} E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y{machine_depth} F3000 ;so the head is out of the way and Plate is moved forward" },
|
||||||
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_max_acceleration_e": { "default_value": 1000 },
|
||||||
|
"machine_max_acceleration_x": { "default_value": 1000 },
|
||||||
|
"machine_max_acceleration_y": { "default_value": 1000 },
|
||||||
|
"machine_max_acceleration_z": { "default_value": 1000 },
|
||||||
|
"machine_name": { "default_value": "Snapmaker" },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"machine_start_gcode": { "default_value": "M104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM140 S{material_bed_temperature_layer_0} ;Set Bed Temperature\nG28 ;home\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner \nG1 Z0 F1800 ;Go to zero offset\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nG92 E0 ;Zero set extruder position\nG1 E20 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position" },
|
||||||
|
"material_bed_temp_prepend": { "default_value": false },
|
||||||
|
"material_diameter": { "default_value": 1.75 },
|
||||||
|
"material_print_temp_prepend": { "default_value": false },
|
||||||
|
"retraction_amount": { "default_value": 5 },
|
||||||
|
"retraction_speed": { "default_value": 60 }
|
||||||
|
}
|
||||||
|
}
|
|
@ -170,7 +170,7 @@
|
||||||
"machine_depth": { "default_value": 420 },
|
"machine_depth": { "default_value": 420 },
|
||||||
"machine_end_gcode": { "default_value": "T1 \nM104 S0 \nT0 \nM104 S0 \nM140 S0 \nM141 S0 \nG91 \nG0 z1 \nG90 \nG28 \nM801.0 \nM84 \nM192" },
|
"machine_end_gcode": { "default_value": "T1 \nM104 S0 \nT0 \nM104 S0 \nM140 S0 \nM141 S0 \nG91 \nG0 z1 \nG90 \nG28 \nM801.0 \nM84 \nM192" },
|
||||||
"machine_extruder_count": { "default_value": 2 },
|
"machine_extruder_count": { "default_value": 2 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
"machine_depth": { "default_value": 230 },
|
"machine_depth": { "default_value": 230 },
|
||||||
"machine_end_gcode": { "default_value": ";Trimaker Nebula End Code\n M107; Apagamos fan\n G90\n G92 E0\n G1 X0 Y200\n G91\n G1 Z5\n G92 E0\n M140 S0; Enfriamos\n M104 S0; Enfriamos\n M84\n G90\n M117 Impresion finalizada\n M300 S440 P700\n" },
|
"machine_end_gcode": { "default_value": ";Trimaker Nebula End Code\n M107; Apagamos fan\n G90\n G92 E0\n G1 X0 Y200\n G91\n G1 Z5\n G92 E0\n M140 S0; Enfriamos\n M104 S0; Enfriamos\n M84\n G90\n M117 Impresion finalizada\n M300 S440 P700\n" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin (Volumetric)" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_heated_bed": { "default_value": true },
|
"machine_heated_bed": { "default_value": true },
|
||||||
"machine_height": { "default_value": 260 },
|
"machine_height": { "default_value": 260 },
|
||||||
"machine_max_feedrate_x": { "default_value": 300 },
|
"machine_max_feedrate_x": { "default_value": 300 },
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
"machine_endstop_positive_direction_y": { "default_value": true },
|
"machine_endstop_positive_direction_y": { "default_value": true },
|
||||||
"machine_endstop_positive_direction_z": { "default_value": false },
|
"machine_endstop_positive_direction_z": { "default_value": false },
|
||||||
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
|
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
@ -196,7 +196,7 @@
|
||||||
"wall_line_width": { "value": "machine_nozzle_size" },
|
"wall_line_width": { "value": "machine_nozzle_size" },
|
||||||
"wall_overhang_angle": { "default_value": 75 },
|
"wall_overhang_angle": { "default_value": 75 },
|
||||||
"wall_overhang_speed_factor": { "default_value": 50 },
|
"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'" },
|
"z_seam_type": { "value": "'back'" },
|
||||||
"zig_zaggify_infill": { "value": true }
|
"zig_zaggify_infill": { "value": true }
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
"machine_depth": { "default_value": 463 },
|
"machine_depth": { "default_value": 463 },
|
||||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
"machine_depth": { "default_value": 155 },
|
"machine_depth": { "default_value": 155 },
|
||||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
"machine_depth": { "default_value": 108 },
|
"machine_depth": { "default_value": 108 },
|
||||||
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
"machine_end_gcode": { "default_value": "M104 S0\nM140 S0\nG92 E2\nG1 E0 F200\nG28 X0 Y0\nM84 X Y E" },
|
||||||
"machine_extruder_count": { "default_value": 1 },
|
"machine_extruder_count": { "default_value": 1 },
|
||||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
"machine_head_with_fans_polygon":
|
"machine_head_with_fans_polygon":
|
||||||
{
|
{
|
||||||
"default_value": [
|
"default_value": [
|
||||||
|
|
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 }
|
||||||
|
}
|
||||||
|
}
|
20
resources/extruders/hellbot_magna_SE_300_extruder.def.json
Normal file
20
resources/extruders/hellbot_magna_SE_300_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"machine": "hellbot_magna_SE_300",
|
||||||
|
"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/hellbot_magna_SE_Pro_extruder.def.json
Normal file
20
resources/extruders/hellbot_magna_SE_Pro_extruder.def.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"machine": "hellbot_magna_SE_Pro",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"extruder_nr":
|
||||||
|
{
|
||||||
|
"default_value": 0,
|
||||||
|
"maximum_value": "1"
|
||||||
|
},
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
29
resources/extruders/lnl3d_extruder_left.def.json
Executable file
29
resources/extruders/lnl3d_extruder_left.def.json
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder Left",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"machine": "lnl3d_base",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"extruder_nr":
|
||||||
|
{
|
||||||
|
"default_value": 0,
|
||||||
|
"maximum_value": "1"
|
||||||
|
},
|
||||||
|
"machine_extruder_cooling_fan_number": { "value": 1 },
|
||||||
|
"machine_extruder_end_pos_abs": { "default_value": true },
|
||||||
|
"machine_extruder_end_pos_x": { "value": "prime_tower_position_x" },
|
||||||
|
"machine_extruder_end_pos_y": { "value": "prime_tower_position_y" },
|
||||||
|
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||||
|
"machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
|
||||||
|
"machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
|
||||||
|
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||||
|
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
29
resources/extruders/lnl3d_extruder_right.def.json
Executable file
29
resources/extruders/lnl3d_extruder_right.def.json
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder Right",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"machine": "lnl3d_base",
|
||||||
|
"position": "1"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"extruder_nr":
|
||||||
|
{
|
||||||
|
"default_value": 1,
|
||||||
|
"maximum_value": "1"
|
||||||
|
},
|
||||||
|
"machine_extruder_cooling_fan_number": { "value": 1 },
|
||||||
|
"machine_extruder_end_pos_abs": { "default_value": true },
|
||||||
|
"machine_extruder_end_pos_x": { "value": "prime_tower_position_x" },
|
||||||
|
"machine_extruder_end_pos_y": { "value": "prime_tower_position_y" },
|
||||||
|
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||||
|
"machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
|
||||||
|
"machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
|
||||||
|
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||||
|
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
16
resources/extruders/mixware_hyper_k_extruder_0.def.json
Normal file
16
resources/extruders/mixware_hyper_k_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata":
|
||||||
|
{
|
||||||
|
"machine": "mixware_hyper_k",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
"overrides":
|
||||||
|
{
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"name": "Extruder 1",
|
"name": "Extruder",
|
||||||
"inherits": "fdmextruder",
|
"inherits": "fdmextruder",
|
||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
|
|
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