mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
Merge branch '5.3'
This commit is contained in:
commit
5970524b3a
199 changed files with 390 additions and 504 deletions
4
.github/workflows/conan-package-create.yml
vendored
4
.github/workflows/conan-package-create.yml
vendored
|
@ -109,9 +109,13 @@ jobs:
|
|||
if: ${{ runner.os == 'Macos' }}
|
||||
run: brew install autoconf automake ninja
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
|
|
221
.github/workflows/conan-package.yml
vendored
221
.github/workflows/conan-package.yml
vendored
|
@ -7,110 +7,149 @@ name: conan-package
|
|||
# It should run on pushes against main or CURA-* branches, but it will only create the binaries for main and release branches
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_binaries_windows:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Windows'
|
||||
create_binaries_linux:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Linux'
|
||||
create_binaries_macos:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Macos'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_binaries_windows:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Windows'
|
||||
create_binaries_linux:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Linux'
|
||||
create_binaries_macos:
|
||||
required: true
|
||||
default: false
|
||||
description: 'create binaries Macos'
|
||||
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-conan-package.txt'
|
||||
- 'requirements*.txt'
|
||||
- 'conanfile.py'
|
||||
- 'conandata.yml'
|
||||
- 'GitVersion.yml'
|
||||
- '*.jinja'
|
||||
branches:
|
||||
- main
|
||||
- 'CURA-*'
|
||||
- '[1-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9]'
|
||||
tags:
|
||||
- '[1-9].[0-9].[0-9]*'
|
||||
- '[1-9].[0-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9].[0-9]*'
|
||||
push:
|
||||
paths:
|
||||
- 'plugins/**'
|
||||
- 'resources/**'
|
||||
- 'cura/**'
|
||||
- 'icons/**'
|
||||
- 'tests/**'
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/conan-*.yml'
|
||||
- '.github/workflows/notify.yml'
|
||||
- '.github/workflows/requirements-conan-package.txt'
|
||||
- 'requirements*.txt'
|
||||
- 'conanfile.py'
|
||||
- 'conandata.yml'
|
||||
- 'GitVersion.yml'
|
||||
- '*.jinja'
|
||||
branches:
|
||||
- main
|
||||
- 'CURA-*'
|
||||
- '[1-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9]'
|
||||
tags:
|
||||
- '[1-9].[0-9].[0-9]*'
|
||||
- '[1-9].[0-9].[0-9]'
|
||||
- '[1-9].[0-9][0-9].[0-9]*'
|
||||
|
||||
env:
|
||||
CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }}
|
||||
CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }}
|
||||
CONAN_LOGIN_USERNAME_CURA_CE: ${{ secrets.CONAN_USER }}
|
||||
CONAN_PASSWORD_CURA_CE: ${{ secrets.CONAN_PASS }}
|
||||
CONAN_LOG_RUN_TO_OUTPUT: 1
|
||||
CONAN_LOGGING_LEVEL: ${{ inputs.conan_logging_level }}
|
||||
CONAN_NON_INTERACTIVE: 1
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
conan-recipe-version:
|
||||
permissions:
|
||||
contents: read
|
||||
conan-recipe-version:
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@main
|
||||
with:
|
||||
project_name: cura
|
||||
|
||||
conan-package-create-linux:
|
||||
needs: [ conan-recipe-version ]
|
||||
runs-on: 'ubuntu-latest'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Python and pip
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
project_name: cura
|
||||
python-version: '3.10.x'
|
||||
cache: 'pip'
|
||||
cache-dependency-path: .github/workflows/requirements-conan-package.txt
|
||||
|
||||
conan-package-export:
|
||||
permissions:
|
||||
contents: read
|
||||
- name: Install Python requirements for runner
|
||||
run: pip install -r https://raw.githubusercontent.com/Ultimaker/Cura/main/.github/workflows/requirements-conan-package.txt
|
||||
# Note the runner requirements are always installed from the main branch in the Ultimaker/Cura repo
|
||||
|
||||
needs: [ conan-recipe-version ]
|
||||
uses: ultimaker/cura/.github/workflows/conan-recipe-export.yml@main
|
||||
- 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:
|
||||
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }}
|
||||
runs_on: 'ubuntu-20.04'
|
||||
python_version: '3.10.x'
|
||||
conan_logging_level: 'info'
|
||||
secrets: inherit
|
||||
path: |
|
||||
$HOME/.conan/data
|
||||
$HOME/.conan/conan_download_cache
|
||||
key: conan-ubuntu-${{ runner.arch }}-create-cache
|
||||
|
||||
conan-package-create-linux:
|
||||
permissions:
|
||||
contents: read
|
||||
# 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 -y
|
||||
|
||||
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux) }}
|
||||
needs: [ conan-recipe-version, conan-package-export ]
|
||||
- name: Install GCC-12
|
||||
run: |
|
||||
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
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/conan-package-create.yml@main
|
||||
with:
|
||||
project_name: ${{ needs.conan-recipe-version.outputs.project_name }}
|
||||
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
build_id: 1
|
||||
runs_on: 'ubuntu-20.04'
|
||||
python_version: '3.10.x'
|
||||
conan_logging_level: 'info'
|
||||
secrets: inherit
|
||||
- name: Create the default Conan profile
|
||||
run: conan profile new default --detect
|
||||
|
||||
notify-export:
|
||||
if: ${{ always() }}
|
||||
needs: [ conan-recipe-version, conan-package-export ]
|
||||
- name: Get Conan configuration
|
||||
run: conan config install https://github.com/Ultimaker/conan-config.git
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New Conan recipe exported in ${{ github.repository }}"
|
||||
success_body: "Exported ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to export Conan Export in ${{ github.repository }}"
|
||||
failure_body: "Failed to exported ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
- name: Create the Packages using lockfile
|
||||
run: conan create . ${{ needs.conan-recipe-version.outputs.recipe_id_full }} --build=missing --update -o ${{ needs.conan-recipe-version.outputs.project_name }}:devtools=True
|
||||
|
||||
notify-create:
|
||||
if: ${{ always() && ((github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) || (github.event_name == 'workflow_dispatch' && inputs.create_binaries_linux)) }}
|
||||
needs: [ conan-recipe-version, conan-package-create-linux ]
|
||||
- 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
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New binaries created in ${{ github.repository }}"
|
||||
success_body: "Created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to create binaries in ${{ github.repository }}"
|
||||
failure_body: "Failed to created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
- name: Create the latest alias
|
||||
if: ${{ needs.conan-recipe-version.outputs.recipe_id_latest != '' && always() }}
|
||||
run: conan alias ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
|
||||
|
||||
- name: Upload the Package(s)
|
||||
if: always()
|
||||
run: |
|
||||
conan upload "*" -r cura --all -c
|
||||
conan upload "*" -r cura-ce -c
|
||||
|
||||
notify-create:
|
||||
if: ${{ always() && (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
|
||||
needs: [ conan-recipe-version, conan-package-create-linux ]
|
||||
|
||||
uses: ultimaker/cura/.github/workflows/notify.yml@main
|
||||
with:
|
||||
success: ${{ contains(join(needs.*.result, ','), 'success') }}
|
||||
success_title: "New binaries created in ${{ github.repository }}"
|
||||
success_body: "Created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
failure_title: "Failed to create binaries in ${{ github.repository }}"
|
||||
failure_body: "Failed to created binaries for ${{ needs.conan-recipe-version.outputs.recipe_id_full }}"
|
||||
secrets: inherit
|
||||
|
|
8
.github/workflows/cura-installer.yml
vendored
8
.github/workflows/cura-installer.yml
vendored
|
@ -122,9 +122,17 @@ jobs:
|
|||
if: ${{ runner.os == 'Macos' }}
|
||||
run: brew install autoconf automake ninja create-dmg # Delete create-dmg when deprecating dmg
|
||||
|
||||
- name: Hack needed specifically for ubuntu-22.04 from mid-Feb 2023 onwards
|
||||
if: ${{ runner.os == 'Linux' && startsWith(inputs.platform, 'ubuntu-22.04') }}
|
||||
run: sudo apt remove libodbc2 libodbcinst2 unixodbc-common -y
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
|
|
4
.github/workflows/unit-test.yml
vendored
4
.github/workflows/unit-test.yml
vendored
|
@ -105,9 +105,13 @@ jobs:
|
|||
$HOME/.conan/conan_download_cache
|
||||
key: conan-${{ runner.os }}-${{ runner.arch }}-unit-cache
|
||||
|
||||
# NOTE: Due to what are probably github issues, we have to remove the cache and reconfigure before the rest.
|
||||
# This is maybe because grub caches the disk it uses last time, which is recreated each time.
|
||||
- name: Install Linux system requirements
|
||||
if: ${{ runner.os == 'Linux' }}
|
||||
run: |
|
||||
sudo rm /var/cache/debconf/config.dat
|
||||
sudo dpkg --configure -a
|
||||
sudo apt update
|
||||
sudo apt upgrade
|
||||
sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config -y
|
||||
|
|
189
conandata.yml
189
conandata.yml
|
@ -1,107 +1,90 @@
|
|||
---
|
||||
# Usage: defaults to the first entry in this conandata.yml file
|
||||
# If you're on a release branch create an entry for that **version** e.q.: `5.1.0` update the requirements (use pinned versions, not latest)
|
||||
# also create a beta entry for that **version** e.q.: `5.1.0-beta`, update the requirements (use the <dep_name>/(latest)@ultimaker/stable)
|
||||
#
|
||||
# If you're working on a feature/bugfix branch from a release branch, create an entry for that **channel**, update the requirements (use
|
||||
# the <dep_name>/(latest)@ultimaker/stable)
|
||||
#
|
||||
# If you're working on a feature/bugfix branch from a main branch, it is optional to create an entry for that **channel**, update the
|
||||
# requirements (use the <dep_name>/(latest)@ultimaker/testing)
|
||||
#
|
||||
# Subject to change in the future!
|
||||
runinfo:
|
||||
entrypoint: "cura_app.py"
|
||||
pyinstaller:
|
||||
datas:
|
||||
cura_plugins:
|
||||
package: "cura"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
cura_resources:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
internal: true
|
||||
cura_private_data_plugins:
|
||||
package: "cura_private_data"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
internal: true
|
||||
uranium_plugins:
|
||||
package: "uranium"
|
||||
src: "plugins"
|
||||
dst: "share/uranium/plugins"
|
||||
uranium_resources:
|
||||
package: "uranium"
|
||||
src: "resources"
|
||||
dst: "share/uranium/resources"
|
||||
uranium_um_qt_qml_um:
|
||||
package: "uranium"
|
||||
src: "site-packages/UM/Qt/qml/UM"
|
||||
dst: "PyQt6/Qt6/qml/UM"
|
||||
cura_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/cura/resources"
|
||||
dst: "share/cura/resources"
|
||||
uranium_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/uranium/resources"
|
||||
dst: "share/uranium/resources"
|
||||
windows_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "windows"
|
||||
dst: "share/windows"
|
||||
fdm_materials:
|
||||
package: "fdm_materials"
|
||||
src: "materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
tcl:
|
||||
package: "tcl"
|
||||
src: "lib/tcl8.6"
|
||||
dst: "tcl"
|
||||
tk:
|
||||
package: "tk"
|
||||
src: "lib/tk8.6"
|
||||
dst: "tk"
|
||||
binaries:
|
||||
curaengine:
|
||||
package: "curaengine"
|
||||
src: "bin"
|
||||
dst: "."
|
||||
binary: "CuraEngine"
|
||||
hiddenimports:
|
||||
- "pySavitar"
|
||||
- "pyArcus"
|
||||
- "pynest2d"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "logging.handlers"
|
||||
- "zeroconf"
|
||||
- "fcntl"
|
||||
- "stl"
|
||||
- "serial"
|
||||
collect_all:
|
||||
- "cura"
|
||||
- "UM"
|
||||
- "serial"
|
||||
- "Charon"
|
||||
- "sqlite3"
|
||||
- "trimesh"
|
||||
- "win32ctypes"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "stl"
|
||||
icon:
|
||||
Windows: "./icons/Cura.ico"
|
||||
Macos: "./icons/cura.icns"
|
||||
Linux: "./icons/cura-128.png"
|
||||
runinfo:
|
||||
entrypoint: "cura_app.py"
|
||||
datas:
|
||||
cura_plugins:
|
||||
package: "cura"
|
||||
src: "plugins"
|
||||
dst: "share/cura/plugins"
|
||||
cura_resources:
|
||||
package: "cura"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
cura_private_data:
|
||||
package: "cura_private_data"
|
||||
src: "resources"
|
||||
dst: "share/cura/resources"
|
||||
internal: true
|
||||
uranium_plugins:
|
||||
package: "uranium"
|
||||
src: "plugins"
|
||||
dst: "share/uranium/plugins"
|
||||
uranium_resources:
|
||||
package: "uranium"
|
||||
src: "resources"
|
||||
dst: "share/uranium/resources"
|
||||
uranium_um_qt_qml_um:
|
||||
package: "uranium"
|
||||
src: "site-packages/UM/Qt/qml/UM"
|
||||
dst: "PyQt6/Qt6/qml/UM"
|
||||
cura_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/cura/resources"
|
||||
dst: "share/cura/resources"
|
||||
uranium_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "resources/uranium/resources"
|
||||
dst: "share/uranium/resources"
|
||||
windows_binary_data:
|
||||
package: "cura_binary_data"
|
||||
src: "windows"
|
||||
dst: "share/windows"
|
||||
fdm_materials:
|
||||
package: "fdm_materials"
|
||||
src: "materials"
|
||||
dst: "share/cura/resources/materials"
|
||||
tcl:
|
||||
package: "tcl"
|
||||
src: "lib/tcl8.6"
|
||||
dst: "tcl"
|
||||
tk:
|
||||
package: "tk"
|
||||
src: "lib/tk8.6"
|
||||
dst: "tk"
|
||||
binaries:
|
||||
curaengine:
|
||||
package: "curaengine"
|
||||
src: "bin"
|
||||
dst: "."
|
||||
binary: "CuraEngine"
|
||||
hiddenimports:
|
||||
- "pySavitar"
|
||||
- "pyArcus"
|
||||
- "pynest2d"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "logging.handlers"
|
||||
- "zeroconf"
|
||||
- "fcntl"
|
||||
- "stl"
|
||||
- "serial"
|
||||
collect_all:
|
||||
- "cura"
|
||||
- "UM"
|
||||
- "serial"
|
||||
- "Charon"
|
||||
- "sqlite3"
|
||||
- "trimesh"
|
||||
- "win32ctypes"
|
||||
- "PyQt6"
|
||||
- "PyQt6.QtNetwork"
|
||||
- "PyQt6.sip"
|
||||
- "stl"
|
||||
icon:
|
||||
Windows: "./icons/Cura.ico"
|
||||
Macos: "./icons/cura.icns"
|
||||
Linux: "./icons/cura-128.png"
|
||||
pycharm_targets:
|
||||
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
|
||||
module_name: Cura
|
||||
|
|
127
conanfile.py
127
conanfile.py
|
@ -6,7 +6,7 @@ from jinja2 import Template
|
|||
from conan import ConanFile
|
||||
from conan.tools.files import copy, rmdir, save, mkdir
|
||||
from conan.tools.microsoft import unix_path
|
||||
from conan.tools.env import VirtualRunEnv, Environment
|
||||
from conan.tools.env import VirtualRunEnv, Environment, VirtualBuildEnv
|
||||
from conan.tools.scm import Version
|
||||
from conan.errors import ConanInvalidConfiguration, ConanException
|
||||
|
||||
|
@ -19,7 +19,7 @@ class CuraConan(ConanFile):
|
|||
author = "UltiMaker"
|
||||
url = "https://github.com/Ultimaker/cura"
|
||||
description = "3D printer / slicing GUI built on top of the Uranium framework"
|
||||
topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer")
|
||||
topics = ("conan", "python", "pyqt6", "qt", "qml", "3d-printing", "slicer")
|
||||
build_policy = "missing"
|
||||
exports = "LICENSE*", "UltiMaker-Cura.spec.jinja", "CuraVersion.py.jinja"
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
|
@ -48,12 +48,6 @@ class CuraConan(ConanFile):
|
|||
"cura_debug_mode": False, # Not yet implemented
|
||||
"internal": False,
|
||||
}
|
||||
scm = {
|
||||
"type": "git",
|
||||
"subfolder": ".",
|
||||
"url": "auto",
|
||||
"revision": "auto"
|
||||
}
|
||||
|
||||
@property
|
||||
def _pycharm_targets(self):
|
||||
|
@ -161,7 +155,7 @@ class CuraConan(ConanFile):
|
|||
return "None"
|
||||
|
||||
def _generate_cura_version(self, location):
|
||||
with open(Path(__file__).parent.joinpath("CuraVersion.py.jinja"), "r") as f:
|
||||
with open(os.path.join(self.recipe_folder, "CuraVersion.py.jinja"), "r") as f:
|
||||
cura_version_py = Template(f.read())
|
||||
|
||||
# If you want a specific Cura version to show up on the splash screen add the user configuration `user.cura:version=VERSION`
|
||||
|
@ -172,7 +166,7 @@ class CuraConan(ConanFile):
|
|||
internal_tag = f"+internal" if self.options.internal else ""
|
||||
cura_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}{pre_tag}{build_tag}{internal_tag}"
|
||||
|
||||
with open(Path(location, "CuraVersion.py"), "w") as f:
|
||||
with open(os.path.join(location, "CuraVersion.py"), "w") as f:
|
||||
f.write(cura_version_py.render(
|
||||
cura_app_name = self.name,
|
||||
cura_app_display_name = self._app_name,
|
||||
|
@ -196,33 +190,33 @@ class CuraConan(ConanFile):
|
|||
if "package" in data: # get the paths from conan package
|
||||
if data["package"] == self.name:
|
||||
if self.in_local_cache:
|
||||
src_path = Path(self.package_folder, data["src"])
|
||||
src_path = os.path.join(self.package_folder, data["src"])
|
||||
else:
|
||||
src_path = Path(self.source_folder, data["src"])
|
||||
src_path = os.path.join(self.source_folder, data["src"])
|
||||
else:
|
||||
src_path = Path(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
||||
src_path = os.path.join(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
||||
elif "root" in data: # get the paths relative from the sourcefolder
|
||||
src_path = Path(self.source_folder, data["root"], data["src"])
|
||||
src_path = os.path.join(self.source_folder, data["root"], data["src"])
|
||||
else:
|
||||
continue
|
||||
if src_path.exists():
|
||||
if Path(src_path).exists():
|
||||
datas.append((str(src_path), data["dst"]))
|
||||
|
||||
binaries = []
|
||||
for binary in pyinstaller_metadata["binaries"].values():
|
||||
if "package" in binary: # get the paths from conan package
|
||||
src_path = Path(self.deps_cpp_info[binary["package"]].rootpath, binary["src"])
|
||||
src_path = os.path.join(self.deps_cpp_info[binary["package"]].rootpath, binary["src"])
|
||||
elif "root" in binary: # get the paths relative from the sourcefolder
|
||||
src_path = Path(self.source_folder, binary["root"], binary["src"])
|
||||
src_path = os.path.join(self.source_folder, binary["root"], binary["src"])
|
||||
else:
|
||||
continue
|
||||
if not src_path.exists():
|
||||
if not Path(src_path).exists():
|
||||
self.output.warning(f"Source path for binary {binary['binary']} does not exist")
|
||||
continue
|
||||
|
||||
for bin in src_path.glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"):
|
||||
for bin in Path(src_path).glob(binary["binary"] + "*[.exe|.dll|.so|.dylib|.so.]*"):
|
||||
binaries.append((str(bin), binary["dst"]))
|
||||
for bin in src_path.glob(binary["binary"]):
|
||||
for bin in Path(src_path).glob(binary["binary"]):
|
||||
binaries.append((str(bin), binary["dst"]))
|
||||
|
||||
# Make sure all Conan dependencies which are shared are added to the binary list for pyinstaller
|
||||
|
@ -240,13 +234,13 @@ class CuraConan(ConanFile):
|
|||
# Collect all dll's from PyQt6 and place them in the root
|
||||
binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")])
|
||||
|
||||
with open(Path(__file__).parent.joinpath("UltiMaker-Cura.spec.jinja"), "r") as f:
|
||||
with open(os.path.join(self.recipe_folder, "UltiMaker-Cura.spec.jinja"), "r") as f:
|
||||
pyinstaller = Template(f.read())
|
||||
|
||||
version = self.conf_info.get("user.cura:version", default = self.version, check_type = str)
|
||||
cura_version = Version(version)
|
||||
|
||||
with open(Path(location, "UltiMaker-Cura.spec"), "w") as f:
|
||||
with open(os.path.join(location, "UltiMaker-Cura.spec"), "w") as f:
|
||||
f.write(pyinstaller.render(
|
||||
name = str(self.options.display_name).replace(" ", "-"),
|
||||
display_name = self._app_name,
|
||||
|
@ -267,6 +261,20 @@ class CuraConan(ConanFile):
|
|||
short_version = f"'{cura_version.major}.{cura_version.minor}.{cura_version.patch}'",
|
||||
))
|
||||
|
||||
def export_sources(self):
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "plugins"), os.path.join(self.export_sources_folder, "plugins"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "resources"), os.path.join(self.export_sources_folder, "resources"), excludes = "*.mo")
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "tests"), os.path.join(self.export_sources_folder, "tests"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "cura"), os.path.join(self.export_sources_folder, "cura"), excludes="CuraVersion.py")
|
||||
copy(self, "*", os.path.join(self.recipe_folder, "packaging"), os.path.join(self.export_sources_folder, "packaging"))
|
||||
copy(self, "*", os.path.join(self.recipe_folder, ".run_templates"), os.path.join(self.export_sources_folder, "run_templates"))
|
||||
copy(self, "requirements.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "requirements-dev.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "requirements-ultimaker.txt", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "UltiMaker-Cura.spec.jinja", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "CuraVersion.py.jinja", self.recipe_folder, self.export_sources_folder)
|
||||
copy(self, "cura_app.py", self.recipe_folder, self.export_sources_folder)
|
||||
|
||||
def set_version(self):
|
||||
if self.version is None:
|
||||
self.version = self._umdefault_version()
|
||||
|
@ -303,45 +311,54 @@ class CuraConan(ConanFile):
|
|||
def layout(self):
|
||||
self.folders.source = "."
|
||||
self.folders.build = "venv"
|
||||
self.folders.generators = Path(self.folders.build, "conan")
|
||||
self.folders.generators = os.path.join(self.folders.build, "conan")
|
||||
|
||||
self.cpp.package.libdirs = [os.path.join("site-packages", "cura")]
|
||||
self.cpp.package.bindirs = ["bin"]
|
||||
self.cpp.package.resdirs = ["resources", "plugins", "packaging", "pip_requirements"] # pip_requirements should be the last item in the list
|
||||
|
||||
def build(self):
|
||||
if self.options.devtools:
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
||||
mo_file = self.build_path.joinpath(po_file.with_suffix('.mo').relative_to(self.source_path))
|
||||
mkdir(self, str(unix_path(self, mo_file.parent)))
|
||||
self.run(f"{cpp_info.bindirs[0]}/msgfmt {po_file} -o {mo_file} -f", env="conanbuild", ignore_errors=True)
|
||||
|
||||
def generate(self):
|
||||
copy(self, "cura_app.py", self.source_folder, str(self._script_dir))
|
||||
cura_run_envvars = self._cura_run_env.vars(self, scope = "run")
|
||||
ext = ".ps1" if self.settings.os == "Windows" else ".sh"
|
||||
cura_run_envvars.save_script(self.folders.generators.joinpath(f"cura_run_environment{ext}"))
|
||||
cura_run_envvars.save_script(os.path.join(self.folders.generators, f"cura_run_environment{ext}"))
|
||||
|
||||
vr = VirtualRunEnv(self)
|
||||
vr.generate()
|
||||
|
||||
self._generate_cura_version(Path(self.source_folder, "cura"))
|
||||
self._generate_cura_version(os.path.join(self.source_folder, "cura"))
|
||||
|
||||
if self.options.devtools:
|
||||
entitlements_file = "'{}'".format(Path(self.source_folder, "packaging", "MacOS", "cura.entitlements"))
|
||||
entitlements_file = "'{}'".format(os.path.join(self.source_folder, "packaging", "MacOS", "cura.entitlements"))
|
||||
self._generate_pyinstaller_spec(location = self.generators_folder,
|
||||
entrypoint_location = "'{}'".format(Path(self.source_folder, self.conan_data["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(Path(self.source_folder, "packaging", self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entrypoint_location = "'{}'".format(os.path.join(self.source_folder, self.conan_data["pyinstaller"]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(os.path.join(self.source_folder, "packaging", self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
|
||||
|
||||
# Update the po files
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type=str):
|
||||
vb = VirtualBuildEnv(self)
|
||||
vb.generate()
|
||||
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
||||
pot_file = self.source_path.joinpath("resources", "i18n", po_file.with_suffix('.pot').name)
|
||||
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):
|
||||
if self.options.devtools:
|
||||
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
|
||||
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
|
||||
# Extract all the new strings and update the existing po files
|
||||
extractTool = self.python_requires["translationextractor"].module.ExtractTranslations(self, self.source_path.joinpath("resources", "i18n"), "cura.pot")
|
||||
extractTool.generate()
|
||||
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
|
||||
mo_file = Path(self.build_folder, po_file.with_suffix('.mo').relative_to(self.source_path))
|
||||
mo_file = mo_file.parent.joinpath("LC_MESSAGES", mo_file.name)
|
||||
mkdir(self, str(unix_path(self, Path(mo_file).parent)))
|
||||
cpp_info = self.dependencies["gettext"].cpp_info
|
||||
self.run(f"{cpp_info.bindirs[0]}/msgfmt {po_file} -o {mo_file} -f", env="conanbuild", ignore_errors=True)
|
||||
|
||||
def imports(self):
|
||||
self.copy("CuraEngine.exe", root_package = "curaengine", src = "@bindirs", dst = "", keep_path = False)
|
||||
|
@ -402,7 +419,7 @@ class CuraConan(ConanFile):
|
|||
self.copy_deps("*", root_package = "uranium", src = self.deps_cpp_info["uranium"].libdirs[0],
|
||||
dst = self._site_packages.joinpath("UM"),
|
||||
keep_path = True)
|
||||
self.copy_deps("*", root_package = "uranium", src = str(Path(self.deps_cpp_info["uranium"].libdirs[0], "Qt", "qml", "UM")),
|
||||
self.copy_deps("*", root_package = "uranium", src = str(os.path.join(self.deps_cpp_info["uranium"].libdirs[0], "Qt", "qml", "UM")),
|
||||
dst = self._site_packages.joinpath("PyQt6", "Qt6", "qml", "UM"),
|
||||
keep_path = True)
|
||||
|
||||
|
@ -445,24 +462,24 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
|
|||
env_prefix = env_prefix)
|
||||
|
||||
ext = ".sh" if self.settings.os != "Windows" else ".ps1"
|
||||
save(self, self._script_dir.joinpath(f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env)
|
||||
save(self, os.path.join(self._script_dir, f"activate_github_actions_version_env{ext}"), activate_github_actions_version_env)
|
||||
|
||||
self._generate_cura_version(Path(self._site_packages, "cura"))
|
||||
self._generate_cura_version(os.path.join(self._site_packages, "cura"))
|
||||
|
||||
entitlements_file = "'{}'".format(Path(self.cpp_info.res_paths[2], "MacOS", "cura.entitlements"))
|
||||
self._generate_pyinstaller_spec(location = self._base_dir,
|
||||
entrypoint_location = "'{}'".format(Path(self.cpp_info.bin_paths[0], self.conan_data["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(Path(self.cpp_info.res_paths[2], self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entrypoint_location = "'{}'".format(os.path.join(self.package_folder, self.cpp_info.bindirs[0], self.conan_data["pyinstaller"]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
|
||||
icon_path = "'{}'".format(os.path.join(self.package_folder, self.cpp_info.resdirs[2], self.conan_data["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
|
||||
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
|
||||
|
||||
def package(self):
|
||||
copy(self, "cura_app.py", src = self.source_path, dst = self.package_path.joinpath(self.cpp.package.bindirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("cura"), dst = self.package_path.joinpath(self.cpp.package.libdirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("resources"), dst = self.package_path.joinpath(self.cpp.package.resdirs[0]), excludes="*.po")
|
||||
copy(self, "*", src = self.build_path.joinpath("resources"), dst = self.package_path.joinpath(self.cpp.package.resdirs[0]))
|
||||
copy(self, "*", src = self.source_path.joinpath("plugins"), dst = self.package_path.joinpath(self.cpp.package.resdirs[1]))
|
||||
copy(self, "requirement*.txt", src = self.source_path, dst = self.package_path.joinpath(self.cpp.package.resdirs[-1]))
|
||||
copy(self, "*", src = self.source_path.joinpath("packaging"), dst = self.package_path.joinpath(self.cpp.package.resdirs[2]))
|
||||
copy(self, "cura_app.py", src = self.source_folder, dst = os.path.join(self.package_folder, self.cpp.package.bindirs[0]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "cura"), dst = os.path.join(self.package_folder, self.cpp.package.libdirs[0]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "resources"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[0]))
|
||||
copy(self, "*.mo", os.path.join(self.build_folder, "resources"), os.path.join(self.package_folder, "resources"))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "plugins"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[1]))
|
||||
copy(self, "requirement*.txt", src = self.source_folder, dst = os.path.join(self.package_folder, self.cpp.package.resdirs[-1]))
|
||||
copy(self, "*", src = os.path.join(self.source_folder, "packaging"), dst = os.path.join(self.package_folder, self.cpp.package.resdirs[2]))
|
||||
|
||||
def package_info(self):
|
||||
self.user_info.pip_requirements = "requirements.txt"
|
||||
|
@ -470,8 +487,8 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
|
|||
self.user_info.pip_requirements_build = "requirements-dev.txt"
|
||||
|
||||
if self.in_local_cache:
|
||||
self.runenv_info.append_path("PYTHONPATH", str(Path(self.cpp_info.lib_paths[0]).parent))
|
||||
self.runenv_info.append_path("PYTHONPATH", self.cpp_info.res_paths[1]) # Add plugins to PYTHONPATH
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "site-packages"))
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.package_folder, "plugins"))
|
||||
else:
|
||||
self.runenv_info.append_path("PYTHONPATH", self.source_folder)
|
||||
self.runenv_info.append_path("PYTHONPATH", os.path.join(self.source_folder, "plugins"))
|
||||
|
|
|
@ -32,6 +32,7 @@ class FlavorParser:
|
|||
"""This parser is intended to interpret the common firmware codes among all the different flavors"""
|
||||
|
||||
MAX_EXTRUDER_COUNT = 16
|
||||
DEFAULT_FILAMENT_DIAMETER = 2.85
|
||||
|
||||
def __init__(self) -> None:
|
||||
CuraApplication.getInstance().hideMessageSignal.connect(self._onHideMessage)
|
||||
|
@ -48,7 +49,7 @@ class FlavorParser:
|
|||
self._is_layers_in_file = False # Does the Gcode have the layers comment?
|
||||
self._extruder_offsets = {} # type: Dict[int, List[float]] # Offsets for multi extruders. key is index, value is [x-offset, y-offset]
|
||||
self._current_layer_thickness = 0.2 # default
|
||||
self._filament_diameter = 2.85 # default
|
||||
self._current_filament_diameter = 2.85 # default
|
||||
self._previous_extrusion_value = 0.0 # keep track of the filament retractions
|
||||
|
||||
CuraApplication.getInstance().getPreferences().addPreference("gcodereader/show_caution", True)
|
||||
|
@ -152,7 +153,7 @@ class FlavorParser:
|
|||
|
||||
def _calculateLineWidth(self, current_point: Position, previous_point: Position, current_extrusion: float, previous_extrusion: float, layer_thickness: float) -> float:
|
||||
# Area of the filament
|
||||
Af = (self._filament_diameter / 2) ** 2 * numpy.pi
|
||||
Af = (self._current_filament_diameter / 2) ** 2 * numpy.pi
|
||||
# Length of the extruded filament
|
||||
de = current_extrusion - previous_extrusion
|
||||
# Volume of the extruded filament
|
||||
|
@ -287,7 +288,11 @@ class FlavorParser:
|
|||
|
||||
def processTCode(self, global_stack, T: int, line: str, position: Position, path: List[List[Union[float, int]]]) -> Position:
|
||||
self._extruder_number = T
|
||||
self._filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
try:
|
||||
self._current_filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
except IndexError:
|
||||
self._current_filament_diameter = self.DEFAULT_FILAMENT_DIAMETER
|
||||
|
||||
if self._extruder_number + 1 > len(position.e):
|
||||
self._extrusion_length_offset.extend([0] * (self._extruder_number - len(position.e) + 1))
|
||||
position.e.extend([0] * (self._extruder_number - len(position.e) + 1))
|
||||
|
@ -323,7 +328,11 @@ class FlavorParser:
|
|||
if not global_stack:
|
||||
return None
|
||||
|
||||
self._filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
try:
|
||||
self._current_filament_diameter = global_stack.extruderList[self._extruder_number].getProperty("material_diameter", "value")
|
||||
except IndexError:
|
||||
# There can be a mismatch between the number of extruders in the G-Code file and the number of extruders in the current machine.
|
||||
self._current_filament_diameter = self.DEFAULT_FILAMENT_DIAMETER
|
||||
|
||||
scene_node = CuraSceneNode()
|
||||
|
||||
|
|
|
@ -133,7 +133,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 0 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -134,7 +134,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 0 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -121,7 +121,6 @@
|
|||
"support_interface_pattern": { "value": "zigzag" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 0 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -115,7 +115,6 @@
|
|||
"support_structure": { "value": "'tree'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)" },
|
||||
"support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -156,7 +156,6 @@
|
|||
"support_interface_height": { "value": "layer_height * 4" },
|
||||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||
|
|
|
@ -221,7 +221,6 @@
|
|||
"support_offset": { "value": "1.5" },
|
||||
"support_pattern": { "default_value": "zigzag" },
|
||||
"support_top_distance": { "value": "support_z_distance" },
|
||||
"support_use_towers": { "value": "True" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height" },
|
||||
|
|
|
@ -110,7 +110,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -99,7 +99,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||
|
|
|
@ -160,7 +160,6 @@
|
|||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -78,7 +78,6 @@
|
|||
"speed_z_hop": { "value": "speed_travel" },
|
||||
"support_bottom_distance": { "value": "layer_height" },
|
||||
"support_bottom_enable": { "value": false },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_wall_count": { "value": "1" },
|
||||
"support_z_distance": { "value": "layer_height" },
|
||||
"switch_extruder_retraction_amount": { "value": 10 },
|
||||
|
|
|
@ -123,11 +123,9 @@
|
|||
"support_interface_density": { "default_value": 33.333 },
|
||||
"support_interface_pattern": { "default_value": "lines" },
|
||||
"support_material_flow": { "value": "material_flow * 0.95" },
|
||||
"support_offset": { "default_value": 0.3 },
|
||||
"support_roof_pattern": { "value": "'grid'" },
|
||||
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'layer_height') + (0 if support_structure == 'tree' else 0)" },
|
||||
"support_tower_maximum_supported_diameter": { "value": "1" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_xy_distance": { "value": "machine_nozzle_size * 1.7" },
|
||||
"support_xy_distance_overhang": { "value": "machine_nozzle_size * 1.2 if support_interface_enable else machine_nozzle_size * 0.8" },
|
||||
"support_z_distance": { "value": "layer_height * 1.2 if (support_interface_enable and support_bottom_enable and layer_height < 0.16) or support_bottom_enable else layer_height" },
|
||||
|
|
|
@ -95,7 +95,6 @@
|
|||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_roof_enable": { "value": true },
|
||||
"support_type": { "value": "'everywhere'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": 0.7 },
|
||||
"support_xy_distance_overhang": { "value": 0.2 },
|
||||
"support_z_distance": { "value": 0.3 },
|
||||
|
|
|
@ -115,7 +115,6 @@
|
|||
"support_interface_enable": { "value": true },
|
||||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_roof_enable": { "value": true },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_z_distance": { "value": 0.3 },
|
||||
"top_layers": { "value": 6 },
|
||||
"top_thickness": { "value": "layer_height * top_layers" },
|
||||
|
|
|
@ -4419,7 +4419,7 @@
|
|||
"type": "float",
|
||||
"value": "material_print_temperature",
|
||||
"enabled": "cool_min_layer_time > 0",
|
||||
"minimum_value": "material_final_print_temperature",
|
||||
"minimum_value": "max(material_final_print_temperature, material_initial_print_temperature)",
|
||||
"maximum_value": "material_print_temperature",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -4698,7 +4698,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "1 if (support_interface_pattern == 'zigzag') else 0",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
|
@ -4715,7 +4715,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "support_interface_wall_count",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -4731,7 +4731,7 @@
|
|||
"maximum_value": "999999",
|
||||
"type": "int",
|
||||
"value": "support_interface_wall_count",
|
||||
"enabled": "support_interface_enable or support_meshes_present",
|
||||
"enabled": "(support_enable and support_interface_enable) or support_meshes_present",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
|
@ -4957,6 +4957,7 @@
|
|||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0.3,
|
||||
"value": "0 if support_bottom_enable else 0.3",
|
||||
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "1.0",
|
||||
|
@ -4970,10 +4971,10 @@
|
|||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 5.0,
|
||||
"limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr",
|
||||
"limit_to_extruder": "support_interface_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "10.0",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_bottom_stair_step_height > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_bottom_stair_step_min_slope":
|
||||
|
@ -4986,7 +4987,7 @@
|
|||
"limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr",
|
||||
"minimum_value": "0.01",
|
||||
"maximum_value": "89.99",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_bottom_stair_step_height > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_join_distance":
|
||||
|
@ -5009,7 +5010,8 @@
|
|||
"description": "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"default_value": 0.8,
|
||||
"value": "support_line_width + 0.4",
|
||||
"limit_to_extruder": "support_infill_extruder_nr",
|
||||
"minimum_value_warning": "-1 * machine_nozzle_size",
|
||||
"maximum_value_warning": "10 * machine_nozzle_size",
|
||||
|
@ -5093,7 +5095,7 @@
|
|||
"default_value": false,
|
||||
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')",
|
||||
"limit_to_extruder": "support_roof_extruder_nr",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_interface_enable",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_bottom_enable":
|
||||
|
@ -5104,7 +5106,7 @@
|
|||
"default_value": false,
|
||||
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')",
|
||||
"limit_to_extruder": "support_bottom_extruder_nr",
|
||||
"enabled": "support_enable or support_meshes_present",
|
||||
"enabled": "(support_enable or support_meshes_present) and support_interface_enable",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
|
@ -5162,7 +5164,8 @@
|
|||
"description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0.3,
|
||||
"default_value": 0.2,
|
||||
"value": "layer_height",
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "support_interface_height",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
|
|
|
@ -166,7 +166,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -114,7 +114,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 0 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 3" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -316,7 +316,6 @@
|
|||
"support_join_distance": { "value": 5.0 },
|
||||
"support_offset": { "value": 3.0 },
|
||||
"support_tree_angle": { "value": 60 },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_z_distance": { "value": "layer_height if (2*layer_height > 0.8*machine_nozzle_size) else (2*layer_height)" },
|
||||
"top_bottom_pattern": { "value": "'zigzag'" },
|
||||
|
|
|
@ -226,7 +226,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -90,7 +90,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -90,7 +90,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -142,7 +142,6 @@
|
|||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"support_angle": { "value": "45" },
|
||||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_use_towers": { "value": "False" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "0" },
|
||||
|
|
|
@ -111,7 +111,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
"speed_wall_x": { "value": 32 },
|
||||
"support_infill_rate": { "value": 5 },
|
||||
"support_pattern": { "default_value": "lines" },
|
||||
"support_use_towers": { "value": false },
|
||||
"switch_extruder_retraction_amount": { "value": 100 },
|
||||
"switch_extruder_retraction_speeds": { "value": 60 },
|
||||
"wall_overhang_speed_factor": { "value": 50 },
|
||||
|
|
|
@ -124,7 +124,6 @@
|
|||
"support_tower_diameter": { "value": 3 },
|
||||
"support_tower_roof_angle": { "value": "65" },
|
||||
"support_type": { "value": "'everywhere'" },
|
||||
"support_use_towers": { "value": true },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": 0.7 },
|
||||
"support_xy_distance_overhang": { "value": 0.2 },
|
||||
|
|
|
@ -162,7 +162,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -132,10 +132,8 @@
|
|||
"support_interface_enable": { "default_value": true },
|
||||
"support_interface_height": { "value": "layer_height * 4" },
|
||||
"support_interface_pattern": { "default_value": "grid" },
|
||||
"support_interface_skip_height": { "default_value": 0.24 },
|
||||
"support_pattern": { "default_value": "zigzag" },
|
||||
"support_type": { "default_value": "buildplate" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
"support_interface_density": { "value": 40 },
|
||||
"support_interface_enable": { "value": true },
|
||||
"support_interface_height": { "value": "layer_height * 3" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.2 else layer_height * 2" },
|
||||
|
|
|
@ -75,7 +75,6 @@
|
|||
"support_interface_density": { "value": 40 },
|
||||
"support_interface_enable": { "value": true },
|
||||
"support_interface_height": { "value": "layer_height * 3" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.2 else layer_height * 2" },
|
||||
|
|
|
@ -228,7 +228,6 @@
|
|||
"support_interface_material_flow": { "value": "99" },
|
||||
"support_line_distance": { "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))" },
|
||||
"support_material_flow": { "value": "98" },
|
||||
"support_offset": { "default_value": 0.2 },
|
||||
"support_roof_density": { "value": "70" },
|
||||
"support_roof_extruder_nr": { "value": "0" },
|
||||
"support_roof_height": { "value": "0.4" },
|
||||
|
@ -238,7 +237,6 @@
|
|||
"support_skip_zag_per_mm": { "default_value": 10 },
|
||||
"support_top_distance": { "value": "0.2" },
|
||||
"support_tree_collision_resolution": { "value": "0.2" },
|
||||
"support_use_towers": { "default_value": false },
|
||||
"support_xy_distance": { "default_value": 0.6 },
|
||||
"support_xy_distance_overhang": { "value": "0.5" },
|
||||
"support_z_distance": { "default_value": 0.2 },
|
||||
|
|
|
@ -277,7 +277,6 @@
|
|||
"maximum_value_warning": "machine_nozzle_size*1.5",
|
||||
"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')"
|
||||
},
|
||||
"support_use_towers": { "default_value": true },
|
||||
"support_xy_distance": { "value": "line_width * 1.7" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance":
|
||||
|
|
|
@ -72,7 +72,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -113,7 +113,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 3" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -70,7 +70,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": "1 if (support_structure == 'tree') else 0" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
"cool_min_layer_time": { "value": 6 },
|
||||
"cool_min_layer_time_fan_speed_max": { "value": "cool_min_layer_time + 5" },
|
||||
"cool_min_speed": { "value": "round(speed_wall_0 * 3 / 4) if cool_lift_head else round(speed_wall_0 / 5)" },
|
||||
"cool_min_temperature": { "value": "material_print_temperature - 15" },
|
||||
"cool_min_temperature": { "value": "max([material_final_print_temperature, material_initial_print_temperature, material_print_temperature - 15])" },
|
||||
"gradual_support_infill_step_height": { "value": "4 * layer_height" },
|
||||
"gradual_support_infill_steps": { "value": "2 if support_interface_enable else 0" },
|
||||
"infill_material_flow": { "value": "(1.95-infill_sparse_density / 100 if infill_sparse_density > 95 else 1) * material_flow" },
|
||||
|
@ -81,7 +81,6 @@
|
|||
},
|
||||
"meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" },
|
||||
"meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" },
|
||||
"minimum_support_area": { "value": "2" },
|
||||
"raft_base_speed": { "value": "raft_speed" },
|
||||
"raft_base_thickness": { "value": "min(machine_nozzle_size * 0.75, 0.3)" },
|
||||
"raft_interface_fan_speed": { "value": "(raft_base_fan_speed + raft_surface_fan_speed) / 2" },
|
||||
|
@ -117,12 +116,10 @@
|
|||
"support_interface_material_flow": { "value": "skin_material_flow" },
|
||||
"support_interface_offset": { "value": "support_offset" },
|
||||
"support_interface_pattern": { "value": "'zigzag'" },
|
||||
"support_interface_skip_height": { "value": "layer_height" },
|
||||
"support_line_distance": { "minimum_value_warning": "0 if support_structure == 'tree' else support_line_width" },
|
||||
"support_offset": { "value": "0.9 if support_interface_enable else 0" },
|
||||
"support_tower_maximum_supported_diameter": { "value": "support_tower_diameter" },
|
||||
"support_tower_roof_angle": { "value": "0 if support_interface_enable else 65" },
|
||||
"support_wall_count": { "value": "1 if support_structure == 'tree' else 0" },
|
||||
"support_xy_distance": { "value": "1" },
|
||||
"support_xy_distance_overhang": { "value": "0.2" },
|
||||
"support_z_distance": { "value": "0" },
|
||||
"top_layers": { "value": "math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))" },
|
||||
|
|
|
@ -101,11 +101,6 @@
|
|||
"machine_width": { "default_value": 223 },
|
||||
"material_bed_temperature": { "maximum_value": 110 },
|
||||
"material_bed_temperature_layer_0": { "maximum_value": 110 },
|
||||
"material_initial_print_temperature":
|
||||
{
|
||||
"maximum_value": 260,
|
||||
"value": "material_print_temperature"
|
||||
},
|
||||
"material_print_temperature": { "maximum_value": 260 },
|
||||
"material_print_temperature_layer_0": { "maximum_value": 260 },
|
||||
"meshfix_maximum_deviation": { "value": "(layer_height / 3) if magic_spiralize else (layer_height / 4)" },
|
||||
|
|
|
@ -101,7 +101,6 @@
|
|||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2 },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_wall_count": { "value": 1 },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
|
|
|
@ -262,7 +262,6 @@
|
|||
"support_fan_enable": { "value": true },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_supported_skin_fan_speed": { "value": 100 },
|
||||
"support_use_towers": { "value": true },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
|
||||
|
|
|
@ -714,7 +714,7 @@ UM.Window
|
|||
{
|
||||
if(!materialsSyncDialog.hasExportedUsb)
|
||||
{
|
||||
exportUsbDialog.currentFolder = syncModel.getPreferredExportAllPath();
|
||||
exportUsbDialog.currentFolder = `${syncModel.getPreferredExportAllPath()}/materials.umm`;
|
||||
exportUsbDialog.open();
|
||||
}
|
||||
else
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = 190
|
||||
retraction_hop = 0.2
|
||||
skin_overlap = 5
|
||||
|
|
|
@ -14,12 +14,11 @@ weight = 0
|
|||
|
||||
[values]
|
||||
brim_width = 10
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
infill_wipe_dist = 0.1
|
||||
machine_min_cool_heat_time_window = 15
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 15
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature - 15
|
||||
skin_overlap = 5
|
||||
speed_print = 30
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = -2
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
prime_tower_enable = False
|
||||
skin_overlap = 20
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = -1
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
prime_tower_enable = False
|
||||
speed_print = 60
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = 1
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature - 5
|
||||
prime_tower_enable = False
|
||||
speed_print = 50
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = 0
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
prime_tower_enable = False
|
||||
speed_print = 55
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
|
|||
infill_wipe_dist = 0
|
||||
layer_height = 0.2
|
||||
machine_min_cool_heat_time_window = 15
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
|
|||
infill_wipe_dist = 0
|
||||
layer_height = 0.15
|
||||
machine_min_cool_heat_time_window = 15
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -19,7 +19,6 @@ layer_height = 0.06
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -18,7 +18,6 @@ infill_wipe_dist = 0
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -12,7 +12,6 @@ variant = AA 0.4
|
|||
weight = -2
|
||||
|
||||
[values]
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
skin_overlap = 20
|
||||
speed_print = 60
|
||||
|
|
|
@ -12,7 +12,6 @@ variant = AA 0.4
|
|||
weight = -1
|
||||
|
||||
[values]
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = 1
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature - 5
|
||||
speed_print = 50
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = 0
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
speed_print = 55
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -2
|
|||
|
||||
[values]
|
||||
adhesion_type = brim
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
ooze_shield_angle = 40
|
||||
raft_airgap = 0.25
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -1
|
|||
|
||||
[values]
|
||||
adhesion_type = brim
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
ooze_shield_angle = 40
|
||||
raft_airgap = 0.25
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = 1
|
|||
|
||||
[values]
|
||||
adhesion_type = brim
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
ooze_shield_angle = 40
|
||||
raft_airgap = 0.25
|
||||
skin_overlap = 50
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = 0
|
|||
|
||||
[values]
|
||||
adhesion_type = brim
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
ooze_shield_angle = 40
|
||||
raft_airgap = 0.25
|
||||
skin_overlap = 50
|
||||
|
|
|
@ -22,7 +22,6 @@ layer_height = 0.2
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
|
|
|
@ -21,7 +21,6 @@ layer_height = 0.15
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
|
|
|
@ -22,7 +22,6 @@ layer_height = 0.06
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature - 10
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
|
|
|
@ -20,7 +20,6 @@ infill_wipe_dist = 0.1
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -12,7 +12,6 @@ variant = AA 0.4
|
|||
weight = -2
|
||||
|
||||
[values]
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
retraction_combing = all
|
||||
skin_overlap = 20
|
||||
|
|
|
@ -12,7 +12,6 @@ variant = AA 0.4
|
|||
weight = -1
|
||||
|
||||
[values]
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature
|
||||
retraction_combing = all
|
||||
speed_infill = =math.ceil(speed_print * 50 / 60)
|
||||
|
|
|
@ -14,7 +14,6 @@ weight = 0
|
|||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 5
|
||||
retraction_combing = all
|
||||
speed_infill = =math.ceil(speed_print * 45 / 55)
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -2
|
|||
|
||||
[values]
|
||||
brim_width = 20
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
infill_wipe_dist = 0.1
|
||||
|
@ -22,7 +21,7 @@ machine_min_cool_heat_time_window = 15
|
|||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 5
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -1
|
|||
|
||||
[values]
|
||||
brim_width = 20
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
infill_wipe_dist = 0.1
|
||||
|
@ -21,8 +20,8 @@ layer_height = 0.15
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 12
|
||||
material_initial_print_temperature = =material_print_temperature - 2
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 13
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = 0
|
|||
|
||||
[values]
|
||||
brim_width = 20
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
infill_wipe_dist = 0.1
|
||||
|
@ -21,7 +20,7 @@ machine_min_cool_heat_time_window = 15
|
|||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 15
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -2
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =5 * layer_height
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
|
@ -25,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 106
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_wipe_enabled = True
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -1
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =5 * layer_height
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
|
@ -25,7 +24,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 106
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_wipe_enabled = True
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = 0
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =5 * layer_height
|
||||
infill_overlap = 0
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
|
@ -24,7 +23,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 106
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_wipe_enabled = True
|
||||
retraction_count_max = 15
|
||||
|
|
|
@ -16,7 +16,6 @@ gradual_infill_step_height = =3 * layer_height
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
prime_tower_enable = True
|
||||
speed_print = 45
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
|
|||
layer_height = 0.4
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 15
|
||||
prime_tower_enable = True
|
||||
speed_infill = =math.ceil(speed_print * 35 / 45)
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles'
|
|||
layer_height = 0.3
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
prime_tower_enable = True
|
||||
speed_print = 45
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -2
|
|||
|
||||
[values]
|
||||
brim_width = 25
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
material_print_temperature = =default_material_print_temperature - 2
|
||||
multiple_mesh_overlap = 0.2
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -4
|
|||
|
||||
[values]
|
||||
brim_width = 25
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0.2
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -3
|
|||
|
||||
[values]
|
||||
brim_width = 25
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
layer_height = 0.3
|
||||
multiple_mesh_overlap = 0.2
|
||||
|
|
|
@ -16,7 +16,6 @@ gradual_infill_step_height = =3 * layer_height
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 0
|
||||
prime_tower_enable = False
|
||||
speed_print = 45
|
||||
|
|
|
@ -16,7 +16,6 @@ gradual_infill_step_height = =3 * layer_height
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
prime_tower_enable = False
|
||||
speed_infill = =math.ceil(speed_print * 30 / 30)
|
||||
|
|
|
@ -16,7 +16,6 @@ gradual_infill_step_height = =3 * layer_height
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cubic'
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_initial_print_temperature = =max(-273.15, material_print_temperature - 10)
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
prime_tower_enable = False
|
||||
speed_infill = =math.ceil(speed_print * 30 / 35)
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -2
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =4 * layer_height
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
infill_sparse_density = 15
|
||||
|
@ -21,7 +20,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 105
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 2
|
||||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -4
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =4 * layer_height
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
infill_sparse_density = 15
|
||||
|
@ -22,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 105
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -13,7 +13,6 @@ weight = -3
|
|||
|
||||
[values]
|
||||
brim_width = 8.75
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
gradual_infill_step_height = =4 * layer_height
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
|
||||
infill_sparse_density = 15
|
||||
|
@ -22,7 +21,7 @@ machine_nozzle_cool_down_speed = 0.5
|
|||
machine_nozzle_heat_up_speed = 2.5
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_flow = 105
|
||||
material_initial_print_temperature = =material_print_temperature
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
multiple_mesh_overlap = 0.2
|
||||
prime_tower_enable = True
|
||||
prime_tower_flow = 100
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = 190
|
||||
retraction_hop = 0.2
|
||||
skin_overlap = 5
|
||||
|
|
|
@ -14,12 +14,11 @@ weight = 0
|
|||
|
||||
[values]
|
||||
brim_width = 10
|
||||
cool_min_temperature = =material_print_temperature - 10
|
||||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
|
||||
infill_wipe_dist = 0.1
|
||||
machine_min_cool_heat_time_window = 15
|
||||
material_final_print_temperature = =material_print_temperature - 10
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 15
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 10
|
|||
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'grid'
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_initial_print_temperature = =material_print_temperature - 10
|
||||
material_print_temperature = =default_material_print_temperature - 15
|
||||
skin_overlap = 5
|
||||
speed_print = 30
|
||||
|
|
|
@ -15,7 +15,6 @@ weight = 1
|
|||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 20
|
||||
material_initial_print_temperature = =material_print_temperature - 15
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
prime_tower_enable = False
|
||||
raft_airgap = 0.15
|
||||
|
|
|
@ -15,7 +15,6 @@ weight = -1
|
|||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 20
|
||||
material_initial_print_temperature = =material_print_temperature - 15
|
||||
material_print_temperature = =default_material_print_temperature + 15
|
||||
prime_tower_enable = False
|
||||
raft_airgap = 0.15
|
||||
|
|
|
@ -15,7 +15,6 @@ weight = 0
|
|||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 20
|
||||
material_initial_print_temperature = =material_print_temperature - 15
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
prime_tower_enable = False
|
||||
raft_airgap = 0.15
|
||||
|
|
|
@ -15,7 +15,6 @@ weight = -2
|
|||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_final_print_temperature = =material_print_temperature - 20
|
||||
material_initial_print_temperature = =material_print_temperature - 15
|
||||
material_print_temperature = =default_material_print_temperature + 20
|
||||
prime_tower_enable = False
|
||||
raft_airgap = 0.15
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_wipe_dist = 0
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 2
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -15,7 +15,6 @@ weight = -1
|
|||
infill_overlap = 0
|
||||
infill_wipe_dist = 0
|
||||
machine_min_cool_heat_time_window = 15
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 10
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
|
@ -17,7 +17,6 @@ infill_wipe_dist = 0
|
|||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_initial_print_temperature = =material_print_temperature - 5
|
||||
material_print_temperature = =default_material_print_temperature + 5
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = True
|
||||
|
|
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