Merge branch 'main' into sm-profiles
1
.github/FUNDING.yml
vendored
@ -1,2 +1,3 @@
|
||||
github: SoftFever
|
||||
ko_fi: SoftFever
|
||||
custom: https://paypal.me/softfever3d
|
||||
|
6
.github/workflows/build_all.yml
vendored
@ -48,10 +48,11 @@ jobs:
|
||||
matrix:
|
||||
include:
|
||||
- os: ubuntu-20.04
|
||||
- os: ubuntu-24.04
|
||||
- os: windows-latest
|
||||
- os: macos-12
|
||||
- os: macos-14
|
||||
arch: x86_64
|
||||
- os: macos-12
|
||||
- os: macos-14
|
||||
arch: arm64
|
||||
uses: ./.github/workflows/build_check_cache.yml
|
||||
with:
|
||||
@ -76,3 +77,4 @@ jobs:
|
||||
# bundle: orcaslicer.flatpak
|
||||
# manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
|
||||
# cache-key: flatpak-builder-${{ github.sha }}
|
||||
# cache: false
|
8
.github/workflows/build_check_cache.yml
vendored
@ -30,12 +30,12 @@ jobs:
|
||||
- name: set outputs
|
||||
id: set_outputs
|
||||
env:
|
||||
underscore-arch: ${{ inputs.os == 'macos-12' && '_' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }} # if is macos, make a string that does "_{arch}", else output nothing
|
||||
dash-arch: ${{ inputs.os == 'macos-12' && '-' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing
|
||||
dep-folder-name: ${{ (inputs.os == 'windows-latest' || inputs.os == 'macos-12') && 'OrcaSlicer_dep' || 'destdir' }}
|
||||
underscore-arch: ${{ inputs.os == 'macos-14' && '_' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "_{arch}", else output nothing
|
||||
dash-arch: ${{ inputs.os == 'macos-14' && '-' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }} # if is macos, make a string that does "-{arch}", else output nothing
|
||||
dep-folder-name: ${{ (inputs.os == 'windows-latest' || inputs.os == 'macos-14') && 'OrcaSlicer_dep' || 'destdir' }}
|
||||
output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
|
||||
run: |
|
||||
echo cache-key=${{ runner.os }}${{ env.dash-arch }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
|
||||
echo cache-key=${{ inputs.os }}${{ env.dash-arch }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
|
||||
echo cache-path=${{ github.workspace }}/deps/build${{ env.underscore-arch }}/${{ env.dep-folder-name }}${{ env.underscore-arch }} >> ${{ env.output-cmd }}
|
||||
|
||||
- name: load cache
|
||||
|
36
.github/workflows/build_deps.yml
vendored
@ -41,6 +41,10 @@ jobs:
|
||||
path: ${{ inputs.cache-path }}
|
||||
key: ${{ inputs.cache-key }}
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
with:
|
||||
cmakeVersion: "~3.28.0" # use most recent 3.28.x version
|
||||
|
||||
- name: setup dev on Windows
|
||||
if: inputs.os == 'windows-latest'
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
@ -69,28 +73,36 @@ jobs:
|
||||
cd ${{ github.workspace }}/deps/build
|
||||
|
||||
- name: Build on Mac ${{ inputs.arch }}
|
||||
if: inputs.os == 'macos-12'
|
||||
if: inputs.os == 'macos-14'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
brew install cmake git gettext automake texinfo ninja
|
||||
brew install automake texinfo ninja libtool
|
||||
brew list
|
||||
mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}
|
||||
mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/OrcaSlicer_dep_${{ inputs.arch }}
|
||||
brew uninstall --ignore-dependencies zstd
|
||||
./build_release_macos.sh -dpx -a ${{ inputs.arch }} -t 10.15
|
||||
./build_release_macos.sh -dpx -a ${{ inputs.arch }} -t 10.15 -1
|
||||
brew install zstd
|
||||
|
||||
|
||||
- name: Build on Ubuntu
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
- name: Install Ubuntu Build Dependencies
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
working-directory: ${{ github.workspace }}
|
||||
env:
|
||||
apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }}
|
||||
webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y cmake git g++ build-essential libgl1-mesa-dev m4 \
|
||||
${{ env.apt-cmd }} update
|
||||
${{ env.apt-cmd }} install -y cmake git g++ build-essential libgl1-mesa-dev m4 \
|
||||
libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules pkgconf \
|
||||
libglu1-mesa-dev libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-4.0-dev \
|
||||
libglu1-mesa-dev libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-${{ env.webkit-ver }}-dev \
|
||||
libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev \
|
||||
gstreamer1.0-plugins-bad libosmesa6-dev wget sudo autoconf curl libunwind-dev texinfo
|
||||
|
||||
- name: Build on Ubuntu
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
mkdir -p ${{ github.workspace }}/deps/build
|
||||
mkdir -p ${{ github.workspace }}/deps/build/destdir
|
||||
sudo ./BuildLinux.sh -ur
|
||||
@ -102,7 +114,7 @@ jobs:
|
||||
|
||||
# Upload Artifacts
|
||||
- name: Upload Mac ${{ inputs.arch }} artifacts
|
||||
if: inputs.os == 'macos-12'
|
||||
if: inputs.os == 'macos-14'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_dep_mac_${{ inputs.arch }}_${{ env.date }}
|
||||
@ -116,10 +128,12 @@ jobs:
|
||||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip
|
||||
|
||||
- name: Upload Ubuntu artifacts
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' }}
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
|
||||
env:
|
||||
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_dep_ubuntu_${{ env.date }}
|
||||
name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }}
|
||||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
|
||||
|
||||
build_orca:
|
||||
|
64
.github/workflows/build_orca.yml
vendored
@ -36,6 +36,10 @@ jobs:
|
||||
key: ${{ inputs.cache-key }}
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
with:
|
||||
cmakeVersion: "~3.28.0" # use most recent 3.28.x version
|
||||
|
||||
- name: Get the version and date on Ubuntu and macOS
|
||||
if: inputs.os != 'windows-latest'
|
||||
run: |
|
||||
@ -75,23 +79,23 @@ jobs:
|
||||
|
||||
# Mac
|
||||
- name: Install tools mac
|
||||
if: inputs.os == 'macos-12'
|
||||
if: inputs.os == 'macos-14'
|
||||
run: |
|
||||
brew install cmake git gettext tree ninja
|
||||
brew install tree ninja libtool
|
||||
brew list
|
||||
mkdir -p ${{ github.workspace }}/deps/build_${{inputs.arch}}
|
||||
mkdir -p ${{ github.workspace }}/deps/build_${{inputs.arch}}/OrcaSlicer_dep_${{inputs.arch}}
|
||||
tree ${{ github.workspace }}/deps/build_${{inputs.arch}}/OrcaSlicer_dep_${{inputs.arch}}
|
||||
|
||||
- name: Build slicer mac
|
||||
if: inputs.os == 'macos-12'
|
||||
if: inputs.os == 'macos-14'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
./build_release_macos.sh -s -n -x -a ${{inputs.arch}} -t 10.15
|
||||
./build_release_macos.sh -s -n -x -a ${{inputs.arch}} -t 10.15 -1
|
||||
|
||||
# Thanks to RaySajuuk, it's working now
|
||||
- name: Sign app and notary
|
||||
if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && inputs.os == 'macos-12'
|
||||
if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && inputs.os == 'macos-14'
|
||||
working-directory: ${{ github.workspace }}
|
||||
env:
|
||||
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
@ -117,21 +121,21 @@ jobs:
|
||||
xcrun stapler staple OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}.dmg
|
||||
|
||||
- name: Create DMG without notary
|
||||
if: github.ref != 'refs/heads/main' && inputs.os == 'macos-12'
|
||||
if: github.ref != 'refs/heads/main' && inputs.os == 'macos-14'
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
ln -s /Applications ${{ github.workspace }}/build_${{inputs.arch}}/OrcaSlicer/Applications
|
||||
hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build_${{inputs.arch}}/OrcaSlicer -ov -format UDZO OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}.dmg
|
||||
|
||||
- name: Upload artifacts mac
|
||||
if: inputs.os == 'macos-12'
|
||||
if: inputs.os == 'macos-14'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}
|
||||
path: ${{ github.workspace }}/OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}.dmg
|
||||
|
||||
- name: Deploy Mac release
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'macos-12'
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'macos-14'
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
@ -155,6 +159,9 @@ jobs:
|
||||
- name: Build slicer Win
|
||||
if: inputs.os == 'windows-latest'
|
||||
working-directory: ${{ github.workspace }}
|
||||
env:
|
||||
WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
|
||||
WindowsSDKVersion: '10.0.22000.0\'
|
||||
run: .\build_release_vs2022.bat slicer
|
||||
|
||||
- name: Create installer Win
|
||||
@ -220,32 +227,38 @@ jobs:
|
||||
|
||||
# Ubuntu
|
||||
- name: Install dependencies
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
env:
|
||||
apt-cmd: ${{ (inputs.os == 'ubuntu-20.04' && 'apt-fast') || (inputs.os == 'ubuntu-24.04' && 'sudo apt-get') || '' }}
|
||||
webkit-ver: ${{ (inputs.os == 'ubuntu-20.04' && '4.0') || (inputs.os == 'ubuntu-24.04' && '4.1') || '' }}
|
||||
libfuse2-pkg: ${{ (inputs.os == 'ubuntu-20.04' && 'libfuse2') || (inputs.os == 'ubuntu-24.04' && 'libfuse2t64') || '' }}
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y autoconf build-essential cmake curl eglexternalplatform-dev \
|
||||
${{ env.apt-cmd }} update
|
||||
${{ env.apt-cmd }} install -y autoconf build-essential cmake curl eglexternalplatform-dev \
|
||||
extra-cmake-modules file git libcairo2-dev libcurl4-openssl-dev libdbus-1-dev libglew-dev libglu1-mesa-dev \
|
||||
libglu1-mesa-dev libgstreamer1.0-dev libgstreamerd-3-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev \
|
||||
libgtk-3-dev libgtk-3-dev libmspack-dev libosmesa6-dev libsecret-1-dev libsoup2.4-dev libssl-dev libudev-dev libwayland-dev \
|
||||
libwebkit2gtk-4.0-dev libxkbcommon-dev locales locales-all m4 pkgconf sudo wayland-protocols wget
|
||||
libwebkit2gtk-${{ env.webkit-ver }}-dev libxkbcommon-dev locales locales-all m4 pkgconf sudo wayland-protocols wget ${{ env.libfuse2-pkg }}
|
||||
|
||||
- name: Install dependencies from BuildLinux.sh
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
shell: bash
|
||||
run: sudo ./BuildLinux.sh -ur
|
||||
|
||||
- name: Fix permissions
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
shell: bash
|
||||
run: sudo chown $USER -R ./
|
||||
|
||||
- name: Build slicer
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
||||
shell: bash
|
||||
env:
|
||||
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
|
||||
run: |
|
||||
./BuildLinux.sh -isr
|
||||
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
chmod +x ./build/OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
||||
chmod +x ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
||||
|
||||
- name: Build orca_custom_preset_tests
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04'
|
||||
@ -257,20 +270,25 @@ jobs:
|
||||
zip -r orca_custom_preset_tests.zip user/
|
||||
|
||||
- name: Upload artifacts Ubuntu
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' }}
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
|
||||
env:
|
||||
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
|
||||
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_Linux_${{ env.ver }}
|
||||
path: './build/OrcaSlicer_Linux_${{ env.ver }}.AppImage'
|
||||
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
|
||||
path: './build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
|
||||
|
||||
- name: Deploy Ubuntu release
|
||||
if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' }}
|
||||
if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
|
||||
env:
|
||||
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ./build/OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
asset_name: OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
asset_path: ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
||||
asset_name: OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
|
||||
|
22
.github/workflows/check_profiles.yml
vendored
@ -1,16 +1,24 @@
|
||||
name: Check profiles
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'resources/profiles/**'
|
||||
- ".github/workflows/check_profiles.yml"
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'resources/profiles/**'
|
||||
- ".github/workflows/check_profiles.yml"
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
logLevel:
|
||||
description: 'Log level'
|
||||
required: true
|
||||
default: 'warning'
|
||||
|
||||
|
||||
jobs:
|
||||
check_translation:
|
||||
name: Check profiles
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
8
.github/workflows/orca_bot.yml
vendored
@ -2,7 +2,13 @@ name: Orca bot
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
logLevel:
|
||||
description: 'Log level'
|
||||
required: true
|
||||
default: 'warning'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
|
10
.github/workflows/publish_docs_to_wiki.yml
vendored
@ -8,6 +8,13 @@ on:
|
||||
branches:
|
||||
- main # This can be changed to any branch of your preference
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
logLevel:
|
||||
description: 'Log level'
|
||||
required: true
|
||||
default: 'warning'
|
||||
|
||||
env:
|
||||
USER_TOKEN: ${{ secrets.GH_WIKI_PAT }} # This is the repository secret personal access token
|
||||
USER_NAME: ${{ vars.BOT_USER_NAME }} # Enter the username of your (bot) account
|
||||
@ -16,7 +23,6 @@ env:
|
||||
|
||||
jobs:
|
||||
publish_docs_to_wiki:
|
||||
if: ${{ !env.ACT }} # Skip if using `act`
|
||||
name: Publish docs to Wiki
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@ -28,7 +34,7 @@ jobs:
|
||||
run: |
|
||||
git config --global user.name "$USER_NAME"
|
||||
git config --global user.email "$USER_NAME"@users.noreply.github.com
|
||||
git clone https://"$USER_TOKEN"@github.com/"$OWNER"/"$REPOSITORY_NAME".wiki.git tmp_wiki
|
||||
git clone https://"$USER_TOKEN"@github.com/SoftFever/"$REPOSITORY_NAME".wiki.git tmp_wiki
|
||||
# 4. Synchronize differences between `doc` & `tmp_wiki`
|
||||
# 5. Push new Wiki content
|
||||
- name: Push main repo content to wiki
|
||||
|
38
.github/workflows/update-translation.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
name: Update Translation Catalog
|
||||
on:
|
||||
# schedule:
|
||||
# - cron: 0 0 * * 1
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update_translation:
|
||||
name: Update translation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install gettext
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gettext
|
||||
|
||||
- name: Update translation catalog
|
||||
run: |
|
||||
./run_gettext.sh --full
|
||||
git add localization/i18n/*
|
||||
|
||||
- name: Commit translation catalog updates
|
||||
uses: qoomon/actions--create-commit@v1
|
||||
id: commit
|
||||
with:
|
||||
message: Update translation catalog
|
||||
skip-empty: true
|
||||
|
||||
- name: Push changes
|
||||
run: git push
|
1
.gitignore
vendored
@ -34,3 +34,4 @@ src/OrcaSlicer-doc/
|
||||
/deps/DL_CACHE
|
||||
**/.flatpak-builder/
|
||||
resources/profiles/user/default
|
||||
*.code-workspace
|
||||
|
@ -80,7 +80,7 @@ fi
|
||||
|
||||
DISTRIBUTION=$(awk -F= '/^ID=/ {print $2}' /etc/os-release)
|
||||
# treat ubuntu as debian
|
||||
if [ "${DISTRIBUTION}" == "ubuntu" ]
|
||||
if [ "${DISTRIBUTION}" == "ubuntu" ] || [ "${DISTRIBUTION}" == "linuxmint" ]
|
||||
then
|
||||
DISTRIBUTION="debian"
|
||||
fi
|
||||
@ -127,8 +127,11 @@ then
|
||||
if [[ -n "${BUILD_DEBUG}" ]]
|
||||
then
|
||||
# have to build deps with debug & release or the cmake won't find everything it needs
|
||||
mkdir deps/build/release
|
||||
cmake -S deps -B deps/build/release -G Ninja -DDESTDIR="../destdir" ${BUILD_ARGS}
|
||||
if [ ! -d "deps/build/release" ]
|
||||
then
|
||||
mkdir deps/build/release
|
||||
fi
|
||||
cmake -S deps -B deps/build/release -G Ninja -DDESTDIR="${PWD}/deps/build/destdir" -DDEP_DOWNLOAD_DIR="${PWD}/deps/DL_CACHE" ${BUILD_ARGS}
|
||||
cmake --build deps/build/release
|
||||
BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug"
|
||||
fi
|
||||
|
@ -121,6 +121,9 @@ if (MSVC)
|
||||
# C4244: 'conversion' conversion from 'type1' to 'type2', possible loss of data. An integer type is converted to a smaller integer type.
|
||||
# C4267: The compiler detected a conversion from size_t to a smaller type.
|
||||
add_compile_options(/wd4244 /wd4267)
|
||||
# Disable warnings on comparison of unsigned and signed
|
||||
# C4018: signed/unsigned mismatch
|
||||
add_compile_options(/wd4018)
|
||||
endif ()
|
||||
|
||||
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang" AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
|
||||
@ -249,6 +252,22 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
|
||||
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
|
||||
add_compile_options(-Werror=return-type)
|
||||
|
||||
# Since some portions of code are just commented out or put under conditional compilation, there are
|
||||
# a bunch of warning related to unused functions and variables. Suppress those warnings to not pollute
|
||||
# compilers diagnostics output with warnings we not going to look at
|
||||
add_compile_options(-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs)
|
||||
|
||||
# Ignore signed/unsigned comparison warnings
|
||||
add_compile_options(-Wno-sign-compare)
|
||||
|
||||
# The mismatch of tabs and spaces throughout the project can sometimes
|
||||
# cause this warning to appear even though the indentation is fine.
|
||||
# Some includes also cause the warning
|
||||
add_compile_options(-Wno-misleading-indentation)
|
||||
|
||||
# Disable warning if enum value does not have a corresponding case in switch statement
|
||||
add_compile_options(-Wno-switch)
|
||||
|
||||
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
|
||||
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||
@ -295,6 +314,8 @@ if (SLIC3R_ASAN)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fsanitize=address")
|
||||
else()
|
||||
add_compile_definitions(_DISABLE_STRING_ANNOTATION=1 _DISABLE_VECTOR_ANNOTATION=1)
|
||||
endif ()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
|
79
README.md
@ -1,18 +1,38 @@
|
||||
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml)
|
||||
# Orca Slicer
|
||||
Orca Slicer is an open source slicer for FDM printers.
|
||||
|
||||
 Join community: [OrcaSlicer Official Discord Server](https://discord.gg/P4VE9UY9gJ)
|
||||
<h1> <p "font-size:200px;"><img align="left" src="https://github.com/KDW06/OrcaSlicer/blob/main/resources/images/OrcaSlicer.ico" width="100"> Orca Slicer</p> </h1>
|
||||
|
||||
[](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml)
|
||||
<br>Orca Slicer is an open source slicer for FDM printers.
|
||||
|
||||
|
||||
Join our Discord community here:<br>
|
||||
<a href="https://discord.gg/P4VE9UY9gJ"><img src="https://img.shields.io/static/v1?message=Discord&logo=discord&label=&color=7289DA&logoColor=white&labelColor=&style=for-the-badge" height="35" alt="discord logo"/> </a>
|
||||
|
||||
<h3>🚨🚨🚨Important Security Alert🚨🚨🚨</h3>
|
||||
|
||||
Please be aware that "orcaslicer.net" is NOT an official website for OrcaSlicer and may be potentially malicious. This site appears to use AI-generated content, lacking genuine context, and seems to exist solely to profit from advertisements. Worse, it may redirect download links to harmful sources. For your safety, avoid downloading OrcaSlicer from this site as the links may be compromised.
|
||||
|
||||
The only official platforms for OrcaSlicer are our GitHub project page and the <a href="https://discord.gg/P4VE9UY9gJ">official Discord channel</a> .
|
||||
|
||||
We deeply value our OrcaSlicer community and appreciate all the social groups that support us. However, it is crucial to address the risk posed by any group that falsely claims to be official or misleads its members. If you encounter such a group or are part of one, please assist by encouraging the group owner to add a clear disclaimer or by alerting its members.
|
||||
|
||||
Thank you for your vigilance and support in keeping our community safe!
|
||||
|
||||
# Main features
|
||||
- Auto calibrations for all printers
|
||||
- Sandwich(inner-outer-inner) mode - an improved version of the `External perimeters first` mode
|
||||
- Auto-calibration for all printers
|
||||
- Sandwich (inner-outer-inner) mode - An improved version of the `External Perimeters First` mode
|
||||
- [Precise wall](https://github.com/SoftFever/OrcaSlicer/wiki/Precise-wall)
|
||||
- Polyholes conversion support [SuperSlicer Wiki: Polyholes](https://github.com/supermerill/SuperSlicer/wiki/Polyholes)
|
||||
- Polyholes conversion support: [SuperSlicer Wiki: Polyholes](https://github.com/supermerill/SuperSlicer/wiki/Polyholes)
|
||||
- Klipper support
|
||||
- More granular controls
|
||||
- More features can be found in [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
|
||||
- Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
|
||||
|
||||
# Wiki
|
||||
The wiki below aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.
|
||||
|
||||
Please note that the wiki is a work in progress. We appreciate your patience as we continue to develop and improve it!
|
||||
|
||||
**[Access the wiki here](https://github.com/SoftFever/OrcaSlicer/wiki)**
|
||||
|
||||
# Download
|
||||
|
||||
@ -40,7 +60,7 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
||||
**Mac**:
|
||||
1. Download the DMG for your computer: `arm64` version for Apple Silicon and `x86_64` for Intel CPU.
|
||||
2. Drag OrcaSlicer.app to Application folder.
|
||||
3. *If you want to run a build from a PR, you also need following instructions below*
|
||||
3. *If you want to run a build from a PR, you also need to follow the instructions below:*
|
||||
<details quarantine>
|
||||
- Option 1 (You only need to do this once. After that the app can be opened normally.):
|
||||
- Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**.
|
||||
@ -58,15 +78,15 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
||||

|
||||
</details>
|
||||
|
||||
**Linux(Ubuntu)**:
|
||||
1. If you run into trouble to execute it, try this command in terminal:
|
||||
**Linux (Ubuntu)**:
|
||||
1. If you run into trouble executing it, try this command in the terminal:
|
||||
`chmod +x /path_to_appimage/OrcaSlicer_Linux.AppImage`
|
||||
|
||||
# How to compile
|
||||
- Windows 64-bit
|
||||
- Tools needed: Visual Studio 2019, Cmake, git, git-lfs, Strawberry Perl.
|
||||
- You will require cmake version 3.14 or later, which is available [on their website](https://cmake.org/download/).
|
||||
- Strawberry Perl is [available on their github repository](https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/).
|
||||
- Strawberry Perl is [available on their GitHub repository](https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/).
|
||||
- Run `build_release.bat` in `x64 Native Tools Command Prompt for VS 2019`
|
||||
- Note: Don't forget to run `git lfs pull` after cloning the repository to download tools on Windows
|
||||
|
||||
@ -74,9 +94,9 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
||||
- Tools needed: Xcode, Cmake, git, gettext, libtool, automake, autoconf, texinfo
|
||||
- You can install most of them by running `brew install cmake gettext libtool automake autoconf texinfo`
|
||||
- run `build_release_macos.sh`
|
||||
- To build and debug in XCode:
|
||||
- run `XCode.app`
|
||||
- open ``build_`arch`/OrcaSlicer.xcodeproj``
|
||||
- To build and debug in Xcode:
|
||||
- run `Xcode.app`
|
||||
- open ``build_`arch`/OrcaSlicer.Xcodeproj``
|
||||
- menu bar: Product => Scheme => OrcaSlicer
|
||||
- menu bar: Product => Scheme => Edit Scheme...
|
||||
- Run => Info tab => Build Configuration: `RelWithDebInfo`
|
||||
@ -84,7 +104,7 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
|
||||
- menu bar: Product => Run
|
||||
|
||||
- Ubuntu
|
||||
- Dependencies **Will be auto installed with the shell script**: `libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo`
|
||||
- Dependencies **Will be auto-installed with the shell script**: `libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo`
|
||||
- run 'sudo ./BuildLinux.sh -u'
|
||||
- run './BuildLinux.sh -dsir'
|
||||
|
||||
@ -109,28 +129,33 @@ Thank you! :)
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="https://peopoly.net/">
|
||||
<img src="SoftFever_doc\sponsor_logos\peopoly-standard-logo.png" alt="Peopoly" width="64" height="">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://qidi3d.com/">
|
||||
<img src="SoftFever_doc\sponsor_logos\QIDI.png" alt="QIDI" width="64" height="">
|
||||
<img src="SoftFever_doc\sponsor_logos\QIDI.png" alt="QIDI" width="96" height="">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://phrozen3d.com/">
|
||||
<img src="SoftFever_doc\sponsor_logos\Phrozen_Logo圓_.png" alt="Phrozen Technology" width="64" height="">
|
||||
<img src="SoftFever_doc\sponsor_logos\Phrozen_Logo圓_.png" alt="Phrozen Technology" width="96" height="">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://bigtree-tech.com/">
|
||||
<img src="SoftFever_doc\sponsor_logos\BigTreeTech.png" alt="BIGTREE TECH" width="96" height="">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### Backers:
|
||||
Ko-fi supporters: [Backers list](https://github.com/SoftFever/OrcaSlicer/files/14855600/sponsors.csv)
|
||||
**Ko-fi supporters**: [Backers list](https://github.com/user-attachments/files/16147016/Supporters_638561417699952499.csv)
|
||||
|
||||
## Support me
|
||||
<a href="https://github.com/sponsors/SoftFever"><img src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86" width="130"></a>
|
||||
|
||||
<a href="https://ko-fi.com/G2G5IP3CP"><img src="https://ko-fi.com/img/githubbutton_sm.svg" width="200"></a>
|
||||
|
||||
[](https://paypal.me/softfever3d)
|
||||
|
||||
Support me
|
||||
[](https://ko-fi.com/G2G5IP3CP)
|
||||
|
||||
## Some background
|
||||
OrcaSlicer is originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
|
||||
@ -153,5 +178,5 @@ The GNU Affero General Public License, version 3 ensures that if you use any par
|
||||
|
||||
Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
|
||||
|
||||
The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
|
||||
The Bambu networking plugin is based on non-free libraries from BambuLab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
Init Version
|
63
SECURITY.md
@ -1,32 +1,47 @@
|
||||
POLICY: Our security policy is to avoid leaving the ecosystem worse than we found it. Meaning we are not planning to introduce vulnerabilities into the ecosystem.
|
||||
The OrcaSlicer team and community take all security bugs in OrcaSlicer seriously. Thank you for improving the security of OrcaSlicer. We appreciate your efforts to disclose the issue responsibly, and will make every effort to acknowledge your contributions.
|
||||
# Security Policy
|
||||
|
||||
Report security bugs by emailing the lead maintainer at softfeverever@gmail.com and include the word "SECURITY" in the subject line.
|
||||
At OrcaSlicer, we are committed to maintaining the security of our ecosystem. Our policy is to ensure that we do not introduce vulnerabilities and that any security issues are addressed promptly and responsibly. We appreciate your help in improving the security of OrcaSlicer and thank you for your responsible disclosure.
|
||||
Reporting Security Bugs
|
||||
|
||||
The lead maintainer will acknowledge your email within a week (7 days), and will send a more detailed response up to 48 hours after that indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and an announcement. We may ask for additional information or guidance.
|
||||
## To report a security bug, please follow these guidelines:
|
||||
|
||||
OrcaSlicer will confirm the problem and determine the affected versions.
|
||||
OrcaSlicer will audit code to find any similar problems.
|
||||
OrcaSlicer will prepare fixes for all releases still under maintenance. These fixes will be released as fast as possible.
|
||||
Report security bugs in third-party modules to the person or team maintaining the module.
|
||||
* Email Security Bugs:
|
||||
Send an email to the lead maintainer at softfeverever@gmail.com.
|
||||
Include the word "SECURITY" in the subject line of your email.
|
||||
|
||||
SECURITY DISCLOSURE: Your responsibility is to report vulnerabilities to us using the guidelines outlined below.
|
||||
Please give detailed steps on how to disclose the vulnerability. Keep these OWASP guidelines in mind ( https://www.owasp.org/index.php/Vulnerability_Disclosure_Cheat_Sheet ) when creating your disclosure policy.
|
||||
* Response Times:
|
||||
The lead maintainer will acknowledge receipt of your email within one week (7 days).
|
||||
A detailed response will follow within 48 hours, outlining the next steps for handling your report.
|
||||
After the initial reply, the security team will keep you informed about the progress toward a fix and any announcements.
|
||||
|
||||
Below are some recommendations for security disclosures:
|
||||
* Information and Collaboration:
|
||||
We may request additional information or guidance as we work on addressing the issue.
|
||||
|
||||
OrcaSlicer security contact { contact: mailto:softfeverever@gmail.com] }
|
||||
When disclosing vulnerabilities please do the following:
|
||||
Your name and affiliation (if any).
|
||||
Include scope of vulnerability. Let us know who could use this exploit.
|
||||
Document steps to identify the vulnerability. It is important that we can reproduce your findings.
|
||||
Show how to exploit vulnerability, give us an attack scenario.
|
||||
OrcaSlicer Checklist: Security Recommendations
|
||||
Follow these steps to improve security when using OrcaSlicer.
|
||||
* Handling the Report:
|
||||
OrcaSlicer will confirm the problem and determine the affected versions.
|
||||
We will audit the code to find any similar issues and prepare fixes for all releases still under maintenance.
|
||||
Fixes will be released as quickly as possible.
|
||||
|
||||
...SEE SOMETHING
|
||||
...SAY SOMETHING
|
||||
1)...SEE SOMETHING
|
||||
We suggest you goto #2 if this happens.
|
||||
* Third-Party Modules:
|
||||
Report security issues in third-party modules to the respective maintainer of those modules.
|
||||
|
||||
Why? Through experience we have found it is best to goto #2 in this situation.
|
||||
## Security Disclosure Guidelines
|
||||
|
||||
When disclosing a vulnerability, please follow these steps to ensure your report is clear and actionable:
|
||||
|
||||
* Provide Detailed Information:
|
||||
Scope: Clearly define the scope of the vulnerability.
|
||||
Potential Impact: Let us know who could be affected by this exploit.
|
||||
Reproduction Steps: Document detailed steps to reproduce the vulnerability.
|
||||
|
||||
Reference OWASP Guidelines:
|
||||
Follow the <a href="https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html">OWASP Vulnerability Disclosure Cheat Sheet</a> for best practices in vulnerability disclosure.
|
||||
|
||||
## Security Recommendations
|
||||
|
||||
To enhance security when using OrcaSlicer, we recommend following these steps:
|
||||
|
||||
* SEE SOMETHING: If you notice anything suspicious or have concerns, please report it.
|
||||
* SAY SOMETHING: If you have any doubts or need assistance, do not hesitate to contact us.
|
||||
|
||||
### Thank you for your commitment to the security of OrcaSlicer. Your efforts help us maintain a safe and reliable ecosystem.
|
||||
|
BIN
SoftFever_doc/sponsor_logos/BigTreeTech.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 9.9 KiB |
@ -34,6 +34,9 @@ while getopts ":dpa:snt:xbc:h" opt; do
|
||||
c )
|
||||
export BUILD_CONFIG="$OPTARG"
|
||||
;;
|
||||
1 )
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL=1
|
||||
;;
|
||||
h ) echo "Usage: ./build_release_macos.sh [-d]"
|
||||
echo " -d: Build deps only"
|
||||
echo " -a: Set ARCHITECTURE (arm64 or x86_64)"
|
||||
@ -43,6 +46,7 @@ while getopts ":dpa:snt:xbc:h" opt; do
|
||||
echo " -x: Use Ninja CMake generator, default is Xcode"
|
||||
echo " -b: Build without reconfiguring CMake"
|
||||
echo " -c: Set CMake build configuration, default is Release"
|
||||
echo " -1: Use single job for building"
|
||||
exit 0
|
||||
;;
|
||||
* )
|
||||
|
@ -44,9 +44,10 @@ if "%1"=="slicer" (
|
||||
)
|
||||
echo "building deps.."
|
||||
|
||||
echo cmake ../ -G "Visual Studio 17 2022" -A x64 -DDESTDIR="%CD%/OrcaSlicer_dep" -DCMAKE_BUILD_TYPE=%build_type% -DDEP_DEBUG=%debug% -DORCA_INCLUDE_DEBUG_INFO=%debuginfo%
|
||||
cmake ../ -G "Visual Studio 17 2022" -A x64 -DDESTDIR="%CD%/OrcaSlicer_dep" -DCMAKE_BUILD_TYPE=%build_type% -DDEP_DEBUG=%debug% -DORCA_INCLUDE_DEBUG_INFO=%debuginfo%
|
||||
echo on
|
||||
cmake ../ -G "Visual Studio 17 2022" -A x64 -DDESTDIR="%DEPS%" -DCMAKE_BUILD_TYPE=%build_type% -DDEP_DEBUG=%debug% -DORCA_INCLUDE_DEBUG_INFO=%debuginfo%
|
||||
cmake --build . --config %build_type% --target deps -- -m
|
||||
@echo off
|
||||
|
||||
if "%1"=="deps" exit /b 0
|
||||
|
||||
@ -56,9 +57,10 @@ cd %WP%
|
||||
mkdir %build_dir%
|
||||
cd %build_dir%
|
||||
|
||||
echo cmake .. -G "Visual Studio 17 2022" -A x64 -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./OrcaSlicer" -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake .. -G "Visual Studio 17 2022" -A x64 -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./OrcaSlicer" -DCMAKE_BUILD_TYPE=%build_type% -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.22000.0"
|
||||
echo on
|
||||
cmake .. -G "Visual Studio 17 2022" -A x64 -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./OrcaSlicer" -DCMAKE_BUILD_TYPE=%build_type% -DWIN10SDK_PATH="%WindowsSdkDir%Include\%WindowsSDKVersion%\"
|
||||
cmake --build . --config %build_type% --target ALL_BUILD -- -m
|
||||
@echo off
|
||||
cd ..
|
||||
call run_gettext.bat
|
||||
cd %build_dir%
|
||||
|
1
deps/OCCT/OCCT.cmake
vendored
@ -22,6 +22,7 @@ orcaslicer_add_cmake_project(OCCT
|
||||
#-DUSE_FREETYPE=OFF
|
||||
-DUSE_FFMPEG=OFF
|
||||
-DUSE_VTK=OFF
|
||||
-DBUILD_DOC_Overview=OFF
|
||||
-DBUILD_MODULE_ApplicationFramework=OFF
|
||||
#-DBUILD_MODULE_DataExchange=OFF
|
||||
-DBUILD_MODULE_Draw=OFF
|
||||
|
@ -10,13 +10,20 @@
|
||||
1. [Max Volumetric speed](#Max-Volumetric-speed)
|
||||
2. [VFA]
|
||||
|
||||
**NOTE**: After completing the calibration process, remember to create a new project in order to exit the calibration mode.
|
||||
**NOTE2**: @ItsDeidara has made a webpage to help with the calculation. Check it out if those equations give you a headache [here](https://orcalibrate.com/).
|
||||
> [!IMPORTANT]
|
||||
> After completing the calibration process, remember to create a new project in order to exit the calibration mode.
|
||||
|
||||
> [!TIP]
|
||||
> @ItsDeidara has made a webpage to help with the calculation. Check it out if those equations give you a headache [here](https://orcalibrate.com/).
|
||||
|
||||
# Flow rate
|
||||
##### *NOTE: For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option.*
|
||||

|
||||
----------------------------------------
|
||||
> [!WARNING]
|
||||
> For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option.
|
||||
>
|
||||
> 
|
||||
|
||||

|
||||
|
||||
Calibrating the flow rate involves a two-step process.
|
||||
Steps
|
||||
1. Select the printer, filament, and process you would like to use for the test.
|
||||
@ -26,7 +33,7 @@ Steps
|
||||

|
||||

|
||||
|
||||
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`. ** Remember** to save the filament profile.
|
||||
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`.** Remember** to save the filament profile.
|
||||
6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`.
|
||||
7. Repeat steps 4 and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. ** Remember ** to save the filament profile.
|
||||

|
||||
@ -35,9 +42,15 @@ Steps
|
||||
|
||||
# Pressure Advance
|
||||
|
||||
Orca Slicer includes three approaches for calibrating the pressure advance value. Each method has its own advantages and disadvantages. It is important to note that each method has two versions: one for a direct drive extruder and one for a Bowden extruder. Make sure to select the appropriate version for your test.
|
||||
##### *NOTE: For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.*
|
||||

|
||||
Orca Slicer includes three approaches for calibrating the pressure advance value. Each method has its own advantages and disadvantages. It is important to note that each method has two versions: one for a direct drive extruder and one for a Bowden extruder. Make sure to select the appropriate version for your test.
|
||||
|
||||
> [!WARNING]
|
||||
> For Marlin: Linear advance must be enabled in firmware (M900). **Not all printers have it enabled by default.**
|
||||
|
||||
> [!WARNING]
|
||||
> For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.
|
||||
>
|
||||
> 
|
||||
|
||||
### Line method
|
||||
|
||||
@ -126,7 +139,8 @@ You can also return to OrcaSlicer in the "Preview" tab, make sure the color sche
|
||||
|
||||

|
||||
|
||||
#### *NOTE You may also choose to conservatively reduce the flow by 5-10% to ensure print quality.*
|
||||
> [!NOTE]
|
||||
> You may also choose to conservatively reduce the flow by 5-10% to ensure print quality.
|
||||
|
||||
***
|
||||
*Credits:*
|
||||
|
41
doc/Home.md
@ -1,7 +1,38 @@
|
||||
Welcome to the OrcaSlicer WIKI!
|
||||
# Welcome to the OrcaSlicer WIKI!
|
||||
|
||||
We have divided it roughly into the following pages:
|
||||
Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki page aims to provide an detailed explanation of the slicer settings, how to get the most out of them as well as how to calibrate and setup your printer.
|
||||
|
||||
* [Calibration](wiki/Calibration)
|
||||
* [Print settings](wiki/Print-settings)
|
||||
* [How to build Orca Slicer](wiki/How-to-build)
|
||||
The Wiki is work in progress so bear with us while we get it up and running!
|
||||
|
||||
## Print Settings, Tips and Tricks (Work In Progress)
|
||||
The below sections provide a detailed settings explanation as well as tips and tricks in setting these for optimal print results.
|
||||
|
||||
### Quality Settings
|
||||
- [Layer Height Settings](quality_settings_layer_height)
|
||||
- [Line Width Settings](quality_settings_line_width)
|
||||
- [Seam Settings](quality_settings_seam)
|
||||
- [Precise wall](Precise-wall)
|
||||
|
||||
### Speed Settings
|
||||
- [Extrusion rate smoothing](extrusion-rate-smoothing)
|
||||
|
||||
### Multi material
|
||||
- [Single Extruder Multimaterial](semm)
|
||||
|
||||
### Printer Settings:
|
||||
- [Air filtration/Exhaust fan handling](air-filtration)
|
||||
- [Auxiliary fan handling](Auxiliary-fan)
|
||||
- [Chamber temperature control](chamber-temperature)
|
||||
- [Adaptive Bed Mesh](adaptive-bed-mesh)
|
||||
- [Using different bed types in Orca](bed-types)
|
||||
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
|
||||
|
||||
## Printer Calibration
|
||||
The guide below takes you through the key calibration tests in Orca - flow rate, pressure advance, print temperature, retraction, tolerances and maximum volumetric speed
|
||||
- [Calibration Guide](./Calibration)
|
||||
- [Adaptive Pressure Advance Guide](adaptive-pressure-advance)
|
||||
|
||||
## Developer Section
|
||||
- [How to build Orca Slicer](./How-to-build)
|
||||
- [Localization and translation guide](Localization_guide)
|
||||
- [Developer Reference](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/Home.md)
|
||||
|
176
doc/adaptive-pressure-advance.md
Normal file
@ -0,0 +1,176 @@
|
||||
# Adaptive Pressure Advance
|
||||
|
||||
This feature aims to dynamically adjust the printer’s pressure advance to better match the conditions the toolhead is facing during a print. Specifically, to more closely align to the ideal values as flow rate, acceleration, and bridges are encountered.
|
||||
This wiki page aims to explain how this feature works, the prerequisites required to get the most out of it as well as how to calibrate it and set it up.
|
||||
|
||||
## Settings Overview
|
||||
|
||||
This feature introduces the below options under the filament settings:
|
||||
|
||||
1. **Enable adaptive pressure advance:** This is the on/off setting switch for adaptive pressure advance.
|
||||
2. **Enable adaptive pressure advance for overhangs:** Enable adaptive PA for overhangs as well as when flow changes within the same feature. This is an experimental option because if the PA profile is not set accurately, it will cause uniformity issues on the external surfaces before and after overhangs. It is recommended to start with this option switched off and enable it after the core adaptive pressure advance feature is calibrated correctly.
|
||||
3. **Pressure advance for bridges:** Sets the desired pressure advance value for bridges. Set it to 0 to disable this feature. Experiments have shown that a lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after a bridge, which is caused by the pressure drop in the nozzle when printing in the air. Therefore, a lower pressure advance value helps counteract this. A good starting point is approximately half your usual PA value.
|
||||
4. **Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below.
|
||||
5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but it’s the ultimate backstop).
|
||||
|
||||
<img width="452" alt="Adaptive PA settings" src="https://github.com/user-attachments/assets/68c46885-54c7-4123-afa0-762d3995185f">
|
||||
|
||||
|
||||
## Pre-Requisites
|
||||
|
||||
This feature has been tested with Klipper-based printers. While it may work with Marlin or Bambu lab printers, it is currently untested with them. It shouldn’t adversely affect the machine; however, the quality results from enabling it are not validated.
|
||||
|
||||
**Older versions of Klipper used to stutter when pressure advance was changed while the toolhead was in motion. This has been fixed with the latest Klipper firmware releases. Therefore, make sure your Klipper installation is updated to the latest version before enabling this feature, in order to avoid any adverse quality impacts.**
|
||||
|
||||
Klipper firmware released after July 11th, 2024 (version greater than approximately v0.12.0-267) contains the above fix and is compatible with adaptive pressure advance. If you are upgrading from an older version, make sure you update both your Klipper installation as well as reflash the printer MCU’s (main board and toolhead board if present).
|
||||
|
||||
## Use case (what to expect)
|
||||
|
||||
Following experimentation, it has been noticed that the optimal pressure advance value is less:
|
||||
|
||||
1. The faster you print (hence the higher the volumetric flow rate requested from the toolhead).
|
||||
2. The larger the layer height (hence the higher the volumetric flow rate requested from the toolhead).
|
||||
3. The higher the print acceleration is.
|
||||
|
||||
What this means is that we never get ideal PA values for each print feature, especially when they vary drastically in speed and acceleration. We can tune PA for a faster print speed (flow) but compromise on corner sharpness for slower speeds or tune PA for corner sharpness and deal with slight corner-perimeter separation in faster speeds. The same goes for accelerations as well as different layer heights.
|
||||
|
||||
This compromise usually means that we settle for tuning an "in-between" PA value between slower external features and faster internal features so we don't get gaps, but also not get too much bulging in external perimeters.
|
||||
|
||||
**However, what this also means is that if you are printing with a single layer height, single speed, and acceleration, there is no need to enable this feature.**
|
||||
|
||||
Adaptive pressure advance aims to address this limitation by implementing a completely different method of setting pressure advance. **Following a set of PA calibration tests done at different flow rates (speeds and layer heights) and accelerations, a pressure advance model is calculated by the slicer.** Then that model is used to emit the best fit PA for any arbitrary feature flow rate (speed) and acceleration used in the print process.
|
||||
|
||||
In addition, it means that you only need to tune this feature once and print across different layer heights with good PA performance.
|
||||
|
||||
Finally, if during calibration you notice that there is little to no variance between the PA tests, this feature is redundant for you. **From experiments, high flow nozzles fitted on high-speed core XY printers appear to benefit the most from this feature as they print with a larger range of flow rates and at a larger range of accelerations.**
|
||||
|
||||
### Expected results:
|
||||
|
||||
With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
|
||||

|
||||
In addition, seams should appear smooth with no bulging or under extrusion.
|
||||

|
||||
Solid infill should have no gaps, pinholes, or separation from the perimeters.
|
||||

|
||||
Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
|
||||

|
||||
|
||||
|
||||
## How to calibrate the adaptive pressure advance model
|
||||
|
||||
### Defining the calibration sets
|
||||
|
||||
Firstly, it is important to understand your printer speed and acceleration limits in order to set meaningful boundaries for the calibrations:
|
||||
|
||||
1. **Upper acceleration range:** Do not attempt to calibrate adaptive PA for an acceleration that is larger than what the Klipper input shaper calibration tool recommends for your selected shaper. For example, if Klipper recommends an EI shaper with 4k maximum acceleration for your slowest axis (usually the Y axis), don’t calibrate adaptive PA beyond that value. This is because after 4k the input shaper smoothing is magnified and the perimeter separations that appear like PA issues are caused by the input shaper smoothing the shape of the corner. Basically, you’d be attempting to compensate for an input shaper artefact with PA.
|
||||
2. **Upper print speed range:** The Ellis PA pattern test has been proven to be the most efficient and effective test to run to calibrate adaptive PA. It is fast and allows for a reasonably accurate and easy-to-read PA value. However, the size of the line segments is quite small, which means that for the faster print speeds and slower accelerations, the toolhead will not be able to reach the full flow rate that we are calibrating against. It is therefore generally not recommended to attempt calibration with a print speed of higher than ~200-250mm/sec and accelerations slower than 1k in the PA pattern test. If your lowest acceleration is higher than 1k, then proportionally higher maximum print speeds can be used.
|
||||
|
||||
**Remember:** With the calibration process, we aim to create a PA – Flow Rate – Acceleration profile for the toolhead. As we cannot directly control flow rate, we use print speed as a proxy (higher speed -> higher flow).
|
||||
|
||||
With the above in mind, let’s create a worked example to identify the optimal number of PA tests to calibrate the adaptive PA model.
|
||||
|
||||
**The below starting points are recommended for the majority of Core XY printers:**
|
||||
|
||||
1. **Accelerations:** 1k, 2k, 4k
|
||||
2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
|
||||
|
||||
**That means we need to run 3x4 = 12 PA tests and identify the optimal PA for them.**
|
||||
|
||||
Finally, if the maximum acceleration given by input shaper is materially higher than 4k, run a set of tests with the higher accelerations. For example, if input shaper allows a 6k value, run PA tests as below:
|
||||
|
||||
1. **Accelerations:** 1k, 2k, 4k, 6k
|
||||
2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
|
||||
|
||||
Similarly, if the maximum value recommended is 12k, run PA tests as below:
|
||||
|
||||
1. **Accelerations:** 1k, 2k, 4k, 8k, 12k
|
||||
2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
|
||||
|
||||
So, at worst case you will need to run 5x4 = 20 PA tests if your printer acceleration is on the upper end! In essence, you want enough granularity of data points to create a meaningful model while also not overdoing it with the number of tests. So, doubling the speed and acceleration is a good compromise to arrive at the optimal number of tests.
|
||||
For this example, let’s assume that the baseline number of tests is adequate for your printer:
|
||||
|
||||
1. **Accelerations:** 1k, 2k, 4k
|
||||
2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
|
||||
|
||||
We, therefore, need to run 12 PA tests as below:
|
||||
|
||||
**Speed – Acceleration**
|
||||
1. 50 – 1k
|
||||
2. 100 – 1k
|
||||
3. 150 – 1k
|
||||
4. 200 – 1k
|
||||
5. 50 – 2k
|
||||
6. 100 – 2k
|
||||
7. 150 – 2k
|
||||
8. 200 – 2k
|
||||
9. 50 – 4k
|
||||
10. 100 – 4k
|
||||
11. 150 – 4k
|
||||
12. 200 – 4k
|
||||
|
||||
### Identifying the flow rates from the print speed
|
||||
|
||||
As mentioned earlier, **the print speed is used as a proxy to vary the extrusion flow rate**. Once your PA test is set up, change the gcode preview to “flow” and move the horizontal slider over one of the herringbone patterns and take note of the flow rate for different speeds.
|
||||

|
||||
|
||||
|
||||
### Running the tests
|
||||
|
||||
Setup your PA test as usual from the calibration menu in Orca slicer. It is recommended that the PA step is set to a small value, to allow you to make meaningful distinctions between the different tests – **therefore a PA step value of 0.001 is recommended. **
|
||||
|
||||
**Set the end PA to a value high enough to start showing perimeter separation for the lowest flow (print speed) and acceleration test.** For example, for a Voron 350 using Revo HF, the maximum value was set to 0.05 as that was sufficient to show perimeter separation even at the slowest flow rates and accelerations.
|
||||
|
||||
**If the test is too big to fit on the build plate, increase your starting PA value or the PA step value accordingly until the test can fit.** If the lowest value becomes too high and there is no ideal PA present in the test, focus on increasing the PA step value to reduce the number of herringbones printed (hence the size of the print).
|
||||
|
||||
<img width="402" alt="PA calibration parameters" src="https://github.com/user-attachments/assets/b411dc30-5556-4e7c-8c40-5279d3074eae">
|
||||
|
||||
Once setup, your PA test should look like the below:
|
||||
|
||||
<img width="437" alt="PA calibration test 1" src="https://github.com/user-attachments/assets/1e6159fe-c3c5-4480-95a1-4383f1fae422">
|
||||
<img width="437" alt="Pa calibration test 2" src="https://github.com/user-attachments/assets/c360bb18-a97a-4f37-b5a3-bb0c67cac2b6">
|
||||
|
||||
Now input your identified print speeds and accelerations in the fields above and run the PA tests.
|
||||
|
||||
**IMPORTANT:** Make sure your acceleration values are all the same in all text boxes. Same for the print speed values and Jerk (XY) values. Make sure your Jerk value is set to the external perimeter jerk used in your print profiles.
|
||||
Now run the tests and note the optimal PA value, the flow, and the acceleration. You should produce a table like this:
|
||||
|
||||
<img width="452" alt="calibration table" src="https://github.com/user-attachments/assets/9451e8e4-352f-4cfc-b835-dffa4420d580">
|
||||
|
||||
Concatenate the PA value, the flow value, and the acceleration value into the final comma-separated sets to create the values entered in the model as shown above.
|
||||
|
||||
**You’re now done! The PA profile is created and calibrated!**
|
||||
|
||||
Remember to paste the values in the adaptive pressure advance measurements text box as shown below, and save your filament profile.
|
||||
|
||||
<img width="452" alt="pa profile" src="https://github.com/user-attachments/assets/e6e61d1b-e422-4a6a-88ff-f55e10f79900">
|
||||
|
||||
|
||||
### Tips
|
||||
|
||||
#### Model input:
|
||||
|
||||
The adaptive PA model built into the slicer is flexible enough to allow for as many or as few increments of flow and acceleration as you want. Ideally, you want at a minimum 3x data points for acceleration and flow in order to create a meaningful model.
|
||||
|
||||
However, if you don’t want to calibrate for flow, just run the acceleration tests and leave flow the same for each test (in which case you’ll input only 3 rows in the model text box). In this case, flow will be ignored when the model is used.
|
||||
|
||||
Similarly for acceleration – in the above example you’ll input only 4 rows in the model text box, in which case acceleration will be ignored when the model is used.
|
||||
|
||||
**However, make sure a triplet of values is always provided – PA value, Flow, Acceleration.**
|
||||
|
||||
#### Identifying the right PA:
|
||||
|
||||
Higher acceleration and higher flow rate PA tests are easier to identify the optimal PA as the range of “good” values is much narrower. It’s evident where the PA is too large, as gaps start to appear in the corner and where PA is too low, as the corner starts bulging.
|
||||
|
||||
However, the lower the flow rate and accelerations are, the range of good values is much wider. Having examined the PA tests even under a microscope, what is evident, is that if you can’t distinguish a value as being evidently better than another (i.e. sharper corner with no gaps) with the naked eye, then both values are correct. In which case, if you can’t find any meaningful difference, simply use the optimal values from the higher flow rates.
|
||||
|
||||
- **Too high PA**
|
||||
|
||||

|
||||
|
||||
- **Too low PA**
|
||||
|
||||

|
||||
|
||||
- **Optimal PA**
|
||||
|
||||

|
6
doc/developer-reference/Home.md
Normal file
@ -0,0 +1,6 @@
|
||||
# For Developers
|
||||
|
||||
This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless.
|
||||
|
||||
- [Preset, PresetBundle and PresetCollection](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/Preset-and-bundle.md)
|
||||
- [Plater, Sidebar, Tab, ComboBox](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/plater-sidebar-tab-combobox.md)
|
43
doc/developer-reference/Preset-and-bundle.md
Normal file
@ -0,0 +1,43 @@
|
||||
This page deals with the explanation for 3 classes in the code.
|
||||
|
||||
## [`Preset`](../../src/libslic3r/Preset.hpp)
|
||||
|
||||
As the name might suggest this class deals with presets for various things. It defines an enum `Type` which basically tells you what kind of data the present contains. Below are a few explained and there corresponding UI elements
|
||||
|
||||
#### Note: There is a lot of outdated and legacy code in the code base.
|
||||
|
||||
- `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code.
|
||||
|
||||
<img src="../images/process-preset.png" alt="Example Image" width="320">
|
||||
|
||||
- `TYPE_FILAMENT`: As the name suggests this preset is for filaments
|
||||
|
||||
<img src="../images/filament-preset.png" alt="Example Image" width="320">
|
||||
|
||||
- `TYPE_PRINTER`: Preset for printers.
|
||||
|
||||
<img src="../images/printer-preset.png" alt="Example Image" width="320">
|
||||
|
||||
There are other preset types but some of them are for SLA. Which is legacy code, since SLA printers are no longer supported. Above 3 are the important types.
|
||||
|
||||
## [`PresetBundle`](../../src/libslic3r/PresetBundle.hpp)
|
||||
|
||||
This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT).
|
||||
|
||||
`PresetCollection prints`\
|
||||
`PresetCollection filaments`\
|
||||
`PrinterPresetCollection printers`
|
||||
|
||||
each one of these contains a collection of processes, filaments and printers respectively.\
|
||||
|
||||
#### Note: Printers, filaments and processes in the bundle don't all have to be compatible with each other. In fact all the saved presets are stored in one `PresetBundle`. The `PresetBundle` is loaded on start up. The list of filaments and processes shown for a particular printer is a subset of `filaments` and `prints` `PresetCollection`s.
|
||||
|
||||
## [`PresetCollection`](../../src/libslic3r/Preset.hpp)
|
||||
|
||||
`PrinterPresetCollection` is a class derived from `PresetCollection`.
|
||||
|
||||
These contain a collection of presets. The presets could be of any type.\
|
||||
functions of note here are:
|
||||
|
||||
`get_edited_preset()`: returns the current selected preset along with any modifications the user has made.\
|
||||
`get_selected_preset()`: returns the current selected preset without the modifications the user has made.
|
23
doc/developer-reference/plater-sidebar-tab-combobox.md
Normal file
@ -0,0 +1,23 @@
|
||||
### !! incomplete, possibly inaccurate, being updated with new info !!
|
||||
|
||||
## [`Plater`](../../src/slic3r/GUI/Plater.hpp)
|
||||
|
||||
Refers to the entire application. The whole view, file loading, project saving and loading is all managed by this class. This class contains members for the model viewer, the sidebar, gcode viewer and everything else.
|
||||
|
||||
## [`Sidebar`](../../src/slic3r/GUI/Plater.hpp)
|
||||
|
||||
This is relating the the sidebar in the application window
|
||||
|
||||
<img src="../images/full-sidebar.png" alt="Example Image" width="320">
|
||||
|
||||
## [`ComboBox`](../../src/slic3r/GUI/Widgets/ComboBox.hpp)
|
||||
|
||||
The drop down menus where you can see and select presets
|
||||
|
||||
<img src="../images/combobox.png" alt="Example Image" width="320">
|
||||
|
||||
## [`Tab`](../../src/slic3r/GUI/Tab.hpp)
|
||||
|
||||
Refers to the various windows with settings. e.g. the Popup to edit printer or filament preset. Also the section to edit process preset and the object list. These 4 are managed by `TabPrinter`, `TabFilament`, `TabPrint` and `TabPrintModel` respectively.
|
||||
|
||||
<img src="../images/tab-popup.png" alt="Example Image" width="320">
|
BIN
doc/images/combobox.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
doc/images/filament-preset.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
doc/images/full-sidebar.png
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
doc/images/printer-preset.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
doc/images/process-preset.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
doc/images/tab-popup.png
Normal file
After Width: | Height: | Size: 122 KiB |
23
doc/pellet-flow-coefficient.md
Normal file
@ -0,0 +1,23 @@
|
||||
Large format printers with print volumes in the order of 1m^3 generally use pellets for printing.
|
||||
The overall tech is very similar to FDM printing.
|
||||
It is FDM printing, but instead of filaments, it uses pellets.
|
||||
|
||||
The difference here is that where filaments have a filament_diameter that is used to calculate
|
||||
the volume of filament ingested, pellets have a particular flow_coefficient that is empirically
|
||||
devised for that particular pellet.
|
||||
|
||||
pellet_flow_coefficient is basically a measure of the packing density of a particular pellet.
|
||||
Shape, material and density of an individual pellet will determine the packing density and
|
||||
the only thing that matters for 3d printing is how much of that pellet material is extruded by
|
||||
one turn of whatever feeding mehcanism/gear your printer uses. You can emperically derive that
|
||||
for your own pellets for a particular printer model.
|
||||
|
||||
We are translating the pellet_flow_coefficient into filament_diameter so that everything works just like it
|
||||
does already with very minor adjustments.
|
||||
|
||||
filament_diameter = sqrt( (4 \* pellet_flow_coefficient) / PI )
|
||||
|
||||
sqrt just makes the relationship between flow_coefficient and volume linear.
|
||||
|
||||
higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
|
||||
All other calculations remain the same for slicing.
|
6
doc/precise-z-height.md
Normal file
@ -0,0 +1,6 @@
|
||||
This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the layer height.
|
||||
|
||||
For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm would typically result in a final height of 20.2mm due to the layer height increments.
|
||||
|
||||
By enabling this parameter, the layer height of the last five layers is adjusted so that the final sliced height matches the actual object height, resulting in an accurate 20.1mm (as shown in the picture).
|
||||

|
17
doc/print_settings/quality/quality_settings_layer_height.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Layer Height
|
||||
|
||||
This setting controls how tall each printed layer will be. Typically, a smaller layer height produces a better-looking part with less jagged edges, especially around curved sections (like the top of a sphere). However, lower layer heights mean more layers to print, proportionally increasing print time.
|
||||
|
||||
### Tips:
|
||||
1. **The optimal layer height depends on the size of your nozzle**. The set layer height must not be taller than 80% of the diameter of the nozzle, else there is little "squish" between the printed layer and the layer below, leading to weaker parts.
|
||||
|
||||
2. While technically there is no limit to how small a layer height one can use, **typically most printers struggle to print reliably with a layer height that is smaller than 20% of the nozzle diameter**. This is because with smaller layer heights, less material is extruded per mm and, at some point, the tolerances of the extruder system result in variations in the flow to such an extent that visible artifacts occur, especially if printing at high speeds.
|
||||
|
||||
For example, it is not uncommon to see "fish scale" type patterns on external walls when printing with a 0.4 mm nozzle at 0.08 mm layer height at speeds of 200mm/sec+. If you observe that pattern, simply increase your layer height to 30% of your nozzle height and/or slow down the print speed considerably.
|
||||
|
||||
# First Layer Height
|
||||
|
||||
This setting controls how tall the first layer of the print will be. Typically, this is set to 50% of the nozzle width for optimal bed adhesion.
|
||||
|
||||
### Tip:
|
||||
A thicker first layer is more forgiving to slight variations to the evenness of the build surface, resulting in a more uniform, visually, first layer. Set it to 0.25mm for a 0.4mm nozzle, for example, if your build surface is uneven or your printer has a slightly inconsistent z offset between print runs. However, as a rule of thumb, try not to exceed 65% of the nozzle width so as to not compromise bed adhesion too much.
|
43
doc/print_settings/quality/quality_settings_line_width.md
Normal file
@ -0,0 +1,43 @@
|
||||
# Line Width
|
||||
|
||||
These settings control how wide the extruded lines are.
|
||||
|
||||
- **Default**: The default line width in mm or as a percentage of the nozzle size.
|
||||
|
||||
- **First Layer**: The line width of the first layer. Typically, this is wider than the rest of the print, to promote better bed adhesion. See tips below for why.
|
||||
|
||||
- **Outer Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s external wall perimeters.
|
||||
|
||||
- **Inner Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal wall perimeters.
|
||||
|
||||
- **Top Surface**: The line width in mm or as a percentage of the nozzle size used when printing the model’s top surface.
|
||||
|
||||
- **Sparse Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s sparse infill.
|
||||
|
||||
- **Internal Solid Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal solid infill.
|
||||
|
||||
- **Support**: The line width in mm or as a percentage of the nozzle size used when printing the model’s support structures.
|
||||
|
||||
|
||||
## Tips:
|
||||
1. **Typically, the line width will be anything from 100% up to 150% of the nozzle width**. Due to the way the slicer’s flow math works, a 100% line width will attempt to extrude slightly “smaller” than the nozzle size and when squished onto the layer below will match the nozzle orifice. You can read more on the flow math here: [Flow Math](https://manual.slic3r.org/advanced/flow-math).
|
||||
|
||||
2. **For most cases, the minimum acceptable recommended line width is 105% of the nozzle diameter**, typically reserved for the outer walls, where greater precision is required. A wider line is less precise than a thinner line.
|
||||
|
||||
3. **Wider lines provide better adhesion to the layer below**, as the material is squished more with the previous layer. For parts that need to be strong, setting this value to 120-150% of the nozzle diameter is recommended and has been experimentally proven to significantly increase part strength.
|
||||
|
||||
4. **Wider lines improve step over and overhang appearance**, i.e., the overlap of the currently printed line to the surface below. So, if you are printing models with overhangs, setting a larger external perimeter line width will improve the overhang’s appearance to an extent.
|
||||
|
||||
5. **For top surfaces, typically a value of ~100%-105% of the nozzle width is recommended** as it provides the most precision, compared to a wider line.
|
||||
|
||||
6. **For external walls, you need to strike a balance between precision and step over and, consequently, overhang appearance.** Typically these values are set to ~105% of nozzle diameter for models with limited overhangs up to ~120% for models with more significant overhangs.
|
||||
|
||||
7. **For internal walls, you typically want to maximize part strength**, so a good starting point is approximately 120% of the nozzle width, which gives a good balance between print speed, accuracy, and material use. However, depending on the model, larger or smaller line widths may make sense in order to reduce gap fill and/or line width variations if you are using Arachne.
|
||||
|
||||
8. **Don’t feel constrained to have wider internal wall lines compared to external ones**. While this is the default for most profiles, for models where significant overhangs are present, printing wider external walls compared to the internal ones may yield better overhang quality without increasing material use!
|
||||
|
||||
9. **For sparse infill, the line width also affects how dense, visually, the sparse infill will be.** The sparse infill aims to extrude a set amount of material based on the percentage infill selected. When increasing the line width, the space between the sparse infill extrusions is larger in order to roughly maintain the same material usage. Typically for sparse infill, a value of 120% of nozzle diameter is a good starting point.
|
||||
|
||||
10. **For supports, using 100% or less line width will make the supports weaker** by reducing their layer adhesion, making them easier to remove.
|
||||
|
||||
11. **If your printer is limited mechanically, try to maintain the material flow as consistent as possible between critical features of your model**, to ease the load on the extruder having to adapt its flow between them. This is especially useful for printers that do not use pressure advance/linear advance and if your extruder is not as capable mechanically. You can do that by adjusting the line widths and speeds to reduce the variation between critical features (e.g., external and internal wall flow). For example, print them at the same speed and the same line width, or print the external perimeter slightly wider and slightly slower than the internal perimeter. Material flow can be visualized in the sliced model – flow drop down.
|
81
doc/print_settings/quality/quality_settings_seam.md
Normal file
@ -0,0 +1,81 @@
|
||||
# Seam Section
|
||||
|
||||
Unless printed in spiral vase mode, every layer needs to begin somewhere and end somewhere. That start and end of the extrusion is what results in what visually looks like a seam on the perimeters. This section contains options to control the visual appearance of a seam.
|
||||
|
||||
- **Seam Position**: Controls the placement of the seam.
|
||||
1. **Aligned**: Will attempt to align the seam to a hidden internal facet of the model.
|
||||
2. **Nearest**: Will place the seam at the nearest starting point compared to where the nozzle stopped printing in the previous layer.
|
||||
3. **Back**: Will align the seam in a (mostly) straight line at the rear of the model.
|
||||
4. **Random**: Will randomize the placement of the seam between layers.
|
||||
|
||||
Typically, aligned or back work the best, especially in combination with seam painting. However, as seams create weak points and slight surface "bulges" or "divots," random seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
|
||||
|
||||
- **Staggered Inner Seams**: As the seam location forms a weak point in the print (it's a discontinuity in the extrusion process after all!), staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
|
||||
|
||||
- **Seam Gap**: Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam. A larger gap will reduce the bulging seen at the seam. A smaller gap reduces the visual appearance of a seam. For a well-tuned printer with pressure advance, a value of 0-15% is typically optimal.
|
||||
|
||||
- **Scarf Seam**: Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
|
||||
|
||||
- **Role-Based Wipe Speed**: Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model. It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
|
||||
|
||||
- **Wipe Speed**: If role-based wipe speed is disabled, set this field to the absolute wipe speed or as a percentage over the travel speed.
|
||||
|
||||
- **Wipe on Loops**: When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
|
||||
|
||||
- **Wipe Before External Perimeters**: To minimize the visibility of potential over-extrusion at the start of an external perimeter, the de-retraction move is performed slightly on the inside of the model and, hence, the start of the external perimeter. That way, any potential over-extrusion is hidden from the outside surface.
|
||||
|
||||
This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam.
|
||||
|
||||
## Tips:
|
||||
With seams being inevitable when 3D printing using FFF, there are two distinct approaches on how to deal with them:
|
||||
|
||||
1. **Try and hide the seam as much as possible**: This can be done by enabling scarf seam, which works very well, especially with simple models with limited overhang regions.
|
||||
2. **Try and make the seam as "clean" and "distinct" as possible**: This can be done by tuning the seam gap and enabling role-based wipe speed, wipe on loops, and wipe before the external loop.
|
||||
|
||||
## Troubleshooting Seam Performance:
|
||||
The section below will focus on troubleshooting traditional seams. For scarf seam troubleshooting, refer to the guide linked above.
|
||||
|
||||
There are several factors that influence how clean the seam of your model is, with the biggest one being extrusion control after a travel move. As a seam defines the start and end of an extrusion, it is critical that:
|
||||
|
||||
1. **The same amount of material is extruded at the same point across layers** to ensure a consistent visual appearance at the start of a seam.
|
||||
2. **The printer consistently stops extruding at the same point** across layers.
|
||||
|
||||
However, due to mechanical and material tolerances, as well as the very nature of 3D printing with FFF, that is not always possible. Hopefully with some tuning you'll be able to achieve prints like this!
|
||||
|
||||

|
||||
|
||||
|
||||
### Troubleshooting the Start of a Seam:
|
||||
Imagine the scenario where the toolhead finishes printing a layer line on one side of the bed, retracts, travels the whole distance of the bed to de-retract, and starts printing another part. Compare this to the scenario where the toolhead finishes printing an internal perimeter and only travels a few mm to start printing an external perimeter, without even retracting or de-retracting.
|
||||
|
||||
The first scenario has much more opportunity for the filament to ooze outside the nozzle, resulting in a small blob forming at the start of the seam or, conversely, if too much material has leaked, a gap/under extrusion at the start of the seam.
|
||||
|
||||
The key to a consistent start of a seam is to reduce the opportunity for ooze as much as possible. The good news is that this is mostly tunable by:
|
||||
|
||||
1. **Ensure your pressure advance is calibrated correctly**. A too low pressure advance will result in the nozzle experiencing excess pressure at the end of the previous extrusion, which increases the chance of oozing when traveling.
|
||||
2. **Make sure your travel speed is as fast as possible within your printer's limits**, and the travel acceleration is as high as practically possible, again within the printer's limits. This reduces the travel time between features, reducing oozing.
|
||||
3. **Enable wipe before external perimeters** – this setting performs the de-retraction move inside the model, hence reducing the visual appearance of the "blob" if it does appear at the seam.
|
||||
4. **Increase your travel distance threshold to be such that small travel moves do not trigger a retraction and de-retraction operation**, reducing extrusion variances caused by the extruder tolerances. 2-4mm is a good starting point as, if your PA is tuned correctly and your travel speed and acceleration are high, it is unlikely that the nozzle will ooze in the milliseconds it will take to travel to the new location.
|
||||
5. **Enable retract on layer change**, to ensure the start of your layer is always performed under the same conditions – a de-pressurized nozzle with retracted filament.
|
||||
|
||||
In addition, some toolhead systems are inherently better at seams compared to others. For example, high-flow nozzles with larger melt zones usually have poorer extrusion control as more of the material is in a molten state inside the nozzle. They tend to string more, ooze easier, and hence have poorer seam performance. Conversely, smaller melt zone nozzles have more of the filament solid in their heat zone, leading to more accurate extrusion control and better seam performance.
|
||||
|
||||
So this is a trade-off between print speed and print quality. From experimental data, volcano-type nozzles tend to perform the worst at seams, followed by CHT-type nozzles, and finally regular flow nozzles.
|
||||
|
||||
In addition, larger nozzle diameters allow for more opportunity for material to leak compared to smaller diameter nozzles. A 0.2/0.25 mm nozzle will have significantly better seam performance than a 0.4, and that will have much better performance than a 0.6mm nozzle and so forth.
|
||||
|
||||
### Troubleshooting the End of a Seam:
|
||||
The end of a seam is much easier to get right, as the extrusion system is already at a pressure equilibrium while printing. It just needs to stop extruding at the right time and consistently.
|
||||
|
||||
**If you are getting bulges at the seam**, the extruder is not stopping at the right time. The first thing to tune would be **pressure advance** – too low of a PA will result in the nozzle still being pressurized when finishing the print move, hence leaving a wider line at the end as it stops printing.
|
||||
|
||||
And the opposite is true too – **too high PA will result in under extrusion at the end of a print move**, shown as a larger-than-needed gap at the seam. Thankfully, tuning PA is straightforward, so run the calibration tests and pick the optimal value for your material, print speed, and acceleration.
|
||||
|
||||
Furthermore, the printer mechanics have tolerances – the print head may be requested to stop at point XY but practically it cannot stop precisely at that point due to the limits of micro-stepping, belt tension, and toolhead rigidity. Here is where tuning the seam gap comes into effect. **A slightly larger seam gap will allow for more variance to be tolerated at the end of a print move before showing as a seam bulge**. Experiment with this value after you are certain your PA is tuned correctly and your travel speeds and retractions are set appropriately.
|
||||
|
||||
Finally, the techniques of **wiping can help improve the visual continuity and consistency of a seam** (please note, these settings do not make the seam less visible, but rather make them more consistent!). Wiping on loops with a consistent speed helps tuck in the end of the seam, hiding the effects of retraction from view.
|
||||
|
||||
### The Role of Wall Ordering in Seam Appearance:
|
||||
The order of wall printing plays a significant role in the appearance of a seam. **Starting to print the external perimeter first after a long travel move will always result in more visible artifacts compared to printing the internal perimeters first and traveling just a few mm to print the external perimeter.**
|
||||
|
||||
For optimal seam performance, printing with **inner-outer-inner wall order is typically best, followed by inner-outer**. It reduces the amount of traveling performed prior to printing the external perimeter and ensures the nozzle is having as consistent pressure as possible, compared to printing outer-inner.
|
@ -44,6 +44,22 @@ modules:
|
||||
- type: archive
|
||||
url: http://mirrors.ircam.fr/pub/x.org/individual/app/xprop-1.2.5.tar.gz
|
||||
sha256: b7bf6b6be6cf23e7966a153fc84d5901c14f01ee952fbd9d930aa48e2385d670
|
||||
- name: python-flit_core
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://files.pythonhosted.org/packages/c4/e6/c1ac50fe3eebb38a155155711e6e864e254ce4b6e17fe2429b4c4d5b9e80/flit_core-3.9.0.tar.gz
|
||||
sha256: 72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba
|
||||
- name: python-packaging
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz
|
||||
sha256: 026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002
|
||||
- name: python-setuptools_scm
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
|
33
linux.d/clear-linux-os
Normal file
@ -0,0 +1,33 @@
|
||||
# these are the Clear Linux specific build functions
|
||||
FOUND_GTK3=$(ls /usr/lib64/libgtk-3.so.* 2>/dev/null | tail -n 1 || true)
|
||||
|
||||
# Addtional bundles for OrcaSlicer
|
||||
export REQUIRED_BUNDLES=(
|
||||
c-basic
|
||||
dev-utils
|
||||
devpkg-curl
|
||||
devpkg-glew
|
||||
devpkg-glu
|
||||
devpkg-gstreamer
|
||||
devpkg-gtk3
|
||||
devpkg-libmspack
|
||||
devpkg-libsecret
|
||||
devpkg-openssl
|
||||
devpkg-webkitgtk
|
||||
file
|
||||
git
|
||||
lib-opengl
|
||||
perl-basic
|
||||
texinfo
|
||||
wget
|
||||
)
|
||||
|
||||
if [[ -n "$UPDATE_LIB" ]]
|
||||
then
|
||||
echo "Updating linux ..."
|
||||
echo swupd bundle-add -y ${REQUIRED_BUNDLES[@]}
|
||||
echo -e "done\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
FOUND_GTK3_DEV=$(ls /usr/lib64/libgtk-3.so 2>/dev/null || true)
|
@ -20,7 +20,6 @@ REQUIRED_DEV_PACKAGES=(
|
||||
libssl-dev
|
||||
libtool
|
||||
libudev-dev
|
||||
libwebkit2gtk-4.0-dev
|
||||
ninja-build
|
||||
texinfo
|
||||
wget
|
||||
@ -38,6 +37,15 @@ then
|
||||
then
|
||||
REQUIRED_DEV_PACKAGES+=(libssl-dev libcurl4-openssl-dev)
|
||||
fi
|
||||
|
||||
# check which version of libwebkit2gtk is available
|
||||
if [ "$(apt show --quiet libwebkit2gtk-4.0-dev)" != "" ]
|
||||
then
|
||||
REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.0-dev)
|
||||
else
|
||||
REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.1-dev)
|
||||
fi
|
||||
|
||||
# TODO: optimize this by checking which, if any, packages are already installed
|
||||
|
||||
# install them all at once
|
||||
|
BIN
resources/calib/filament_flow/Orca-LinearFlow.3mf
Normal file
BIN
resources/calib/filament_flow/Orca-LinearFlow_fine.3mf
Normal file
BIN
resources/calib/filament_flow/pass1.3mf
Normal file
@ -1,3 +1,3 @@
|
||||
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M3.346 0.361999H5.068V3.078H7.77V4.786H5.068V7.502H3.346V4.786H0.63V3.078H3.346V0.361999Z" fill="black"/>
|
||||
<path d="M3.346 0.361999H5.068V3.078H7.77V4.786H5.068V7.502H3.346V4.786H0.63V3.078H3.346V0.361999Z" style="fill:#949494"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 222 B |
@ -1,3 +1,3 @@
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5 12L8.50024 7.6247C8.79242 7.25948 8.79204 6.74005 8.49986 6.37483C7.23348 4.79185 6.38744 3.73431 5 2" stroke="#909090" stroke-linecap="round"/>
|
||||
<path d="M5 12L8.50024 7.6247C8.79242 7.25948 8.79204 6.74005 8.49986 6.37483C7.23348 4.79185 6.38744 3.73431 5 2" style="stroke:#949494" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 266 B |
48
resources/images/pellets.svg
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#6B6B6B;}
|
||||
.st1{fill:#009688;}
|
||||
</style>
|
||||
<path class="st0" d="M3.1,9C3.1,9,3,9,3,9C2.5,9,1.8,8.6,1.3,8C0.6,7,0.4,6,0.9,5.5l4.9-4c0,0,0,0,0,0l0,0C6,1.4,6.2,1.3,6.5,1.3
|
||||
C7,1.4,7.6,1.8,8.1,2.4c0.4,0.4,0.6,0.9,0.7,1.3c0.1,0.5,0,0.9-0.3,1.1c0,0,0,0,0,0l-4.9,4C3.5,9,3.3,9,3.1,9z M5.5,2.3L1.2,5.8
|
||||
C0.9,6.1,1,6.9,1.6,7.7c0.4,0.5,1,0.9,1.4,0.9c0.2,0,0.3,0,0.4-0.1L7.8,5C7.7,5,7.5,4.9,7.4,4.9C7,4.7,6.6,4.4,6.2,3.9
|
||||
C5.8,3.4,5.5,2.8,5.5,2.3z M6.1,1.8L6.1,1.8C6,1.9,5.9,2,5.9,2.1c0,0.4,0.2,1,0.6,1.6c0.3,0.4,0.7,0.7,1,0.8c0.3,0.1,0.6,0.1,0.7,0
|
||||
l0,0c0.2-0.1,0.2-0.4,0.1-0.7C8.4,3.4,8.1,3,7.8,2.6c-0.4-0.5-1-0.9-1.4-0.9C6.3,1.7,6.2,1.7,6.1,1.8L6.1,1.8z"/>
|
||||
<path class="st0" d="M11.5,6.6C11.5,6.6,11.5,6.6,11.5,6.6c-0.3,0.2-0.6,0.2-1,0.1C10,6.6,9.6,6.2,9.7,5.9L10.4,3c0,0,0,0,0,0l0,0
|
||||
c0-0.1,0.1-0.2,0.2-0.2c0.2-0.1,0.6-0.2,0.9-0.1C11.8,2.8,12,2.9,12.1,3c0.2,0.2,0.2,0.3,0.2,0.5c0,0,0,0,0,0l-0.7,2.9
|
||||
C11.6,6.5,11.6,6.5,11.5,6.6z M10.5,3.4L9.9,5.9c0,0.2,0.2,0.5,0.7,0.6c0.3,0.1,0.6,0.1,0.8,0c0.1,0,0.1-0.1,0.1-0.1l0.6-2.6
|
||||
c0,0-0.1,0-0.2,0.1c-0.2,0.1-0.5,0-0.7,0C10.9,3.7,10.6,3.6,10.5,3.4z M10.6,3.1L10.6,3.1c0,0.1,0,0.1,0,0.2
|
||||
c0.1,0.2,0.4,0.3,0.7,0.4c0.2,0.1,0.4,0.1,0.6,0c0.2,0,0.3-0.1,0.3-0.2l0,0c0-0.1,0-0.2-0.2-0.3c-0.1-0.1-0.3-0.2-0.6-0.3
|
||||
c-0.3-0.1-0.6-0.1-0.8,0C10.6,3,10.6,3,10.6,3.1L10.6,3.1z"/>
|
||||
<path class="st0" d="M3.5,10.5C3.5,10.5,3.5,10.5,3.5,10.5c0.1-0.3,0.4-0.5,0.8-0.6c0.5-0.2,1-0.1,1.1,0.2L6.3,13c0,0,0,0,0,0l0,0
|
||||
c0,0.1,0,0.2,0,0.3c-0.1,0.2-0.4,0.4-0.7,0.5C5.3,14,5,14,4.8,13.9c-0.2,0-0.4-0.1-0.4-0.3c0,0,0,0,0,0l-0.9-2.8
|
||||
C3.5,10.7,3.5,10.6,3.5,10.5z M6.1,12.8l-0.8-2.5c-0.1-0.2-0.4-0.3-0.9-0.1c-0.3,0.1-0.6,0.3-0.6,0.4c0,0.1,0,0.1,0,0.2l0.8,2.5
|
||||
c0,0,0.1-0.1,0.1-0.1c0.1-0.1,0.4-0.3,0.6-0.4C5.5,12.7,5.8,12.7,6.1,12.8z M6.2,13.1L6.2,13.1C6.1,13,6.1,13,6,13
|
||||
c-0.2-0.1-0.5-0.1-0.8,0C5,13,4.8,13.1,4.7,13.3c-0.1,0.1-0.2,0.2-0.1,0.3l0,0c0,0.1,0.1,0.2,0.3,0.2c0.2,0,0.4,0,0.6-0.1
|
||||
c0.3-0.1,0.6-0.3,0.6-0.4C6.2,13.2,6.2,13.1,6.2,13.1L6.2,13.1z"/>
|
||||
<path class="st1" d="M2.2,12.2C2.2,12.2,2.2,12.2,2.2,12.2c-0.1,0.1-0.3,0.1-0.5,0.1c-0.3-0.1-0.5-0.2-0.4-0.4l0.4-1.5c0,0,0,0,0,0
|
||||
l0,0c0-0.1,0-0.1,0.1-0.1c0.1-0.1,0.3-0.1,0.5,0c0.1,0,0.2,0.1,0.3,0.2c0.1,0.1,0.1,0.2,0.1,0.3c0,0,0,0,0,0l-0.4,1.5
|
||||
C2.3,12.1,2.3,12.2,2.2,12.2z M1.7,10.5l-0.3,1.3c0,0.1,0.1,0.2,0.4,0.3c0.2,0,0.3,0,0.4,0c0,0,0.1,0,0.1-0.1l0.3-1.3
|
||||
c0,0-0.1,0-0.1,0c-0.1,0-0.2,0-0.4,0C1.9,10.7,1.8,10.6,1.7,10.5z"/>
|
||||
<path class="st1" d="M14.9,6.4C14.9,6.5,14.9,6.5,14.9,6.4c0,0.2-0.1,0.3-0.2,0.5c-0.2,0.2-0.4,0.3-0.6,0.2l-1.1-1c0,0,0,0,0,0l0,0
|
||||
c0,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.2,0,0.3,0c0,0,0,0,0,0l1.1,1
|
||||
C14.9,6.4,14.9,6.4,14.9,6.4z M13.2,6.1l1,0.9c0.1,0.1,0.3,0,0.4-0.2c0.1-0.1,0.2-0.3,0.2-0.4c0,0,0-0.1,0-0.1l-1-0.9
|
||||
c0,0,0,0.1,0,0.1c0,0.1-0.1,0.2-0.2,0.3C13.4,6,13.3,6.1,13.2,6.1z"/>
|
||||
<path class="st1" d="M15.2,2.5C15.2,2.5,15.2,2.5,15.2,2.5c0,0.2-0.1,0.3-0.2,0.5c-0.2,0.2-0.4,0.3-0.6,0.2l-1.1-1c0,0,0,0,0,0l0,0
|
||||
c0,0-0.1-0.1-0.1-0.2c0-0.1,0.1-0.3,0.2-0.4c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.2,0,0.3,0c0,0,0,0,0,0l1.1,1
|
||||
C15.1,2.4,15.1,2.5,15.2,2.5z M13.4,2.2l1,0.9c0.1,0.1,0.3,0,0.4-0.2c0.1-0.1,0.2-0.3,0.2-0.4c0,0,0-0.1,0-0.1l-1-0.9
|
||||
c0,0,0,0.1,0,0.1c0,0.1-0.1,0.2-0.2,0.3C13.7,2.1,13.6,2.2,13.4,2.2z"/>
|
||||
<path class="st1" d="M2.9,2C2.9,2,2.9,2,2.9,2c0,0.2-0.1,0.3-0.2,0.5C2.5,2.7,2.2,2.7,2.1,2.6L1,1.6c0,0,0,0,0,0l0,0
|
||||
c0,0-0.1-0.1-0.1-0.2C0.9,1.3,1,1.1,1.1,1c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.2,0,0.3,0c0,0,0,0,0,0l1.1,1C2.8,1.9,2.9,1.9,2.9,2z
|
||||
M1.1,1.6l1,0.9c0.1,0.1,0.3,0,0.4-0.2C2.7,2.3,2.8,2.1,2.8,2c0,0,0-0.1,0-0.1L1.7,1c0,0,0,0.1,0,0.1c0,0.1-0.1,0.2-0.2,0.3
|
||||
C1.4,1.5,1.3,1.6,1.1,1.6z"/>
|
||||
<path class="st0" d="M6.6,9.9c0,0,0-0.1,0-0.1c0-0.5,0.3-1.2,0.8-1.8c0.8-0.9,1.8-1.2,2.3-0.7l4.6,4.3c0,0,0,0,0,0l0,0
|
||||
c0.2,0.1,0.2,0.4,0.3,0.6c0,0.5-0.3,1.2-0.8,1.8c-0.4,0.4-0.8,0.7-1.2,0.9c-0.5,0.2-0.9,0.1-1.1-0.1c0,0,0,0,0,0l-4.6-4.3
|
||||
C6.7,10.3,6.6,10.1,6.6,9.9z M13.6,11.4L9.4,7.6c-0.3-0.3-1.1,0-1.8,0.7C7.2,8.8,6.9,9.4,6.9,9.8c0,0.2,0.1,0.3,0.1,0.3l4.1,3.8
|
||||
c0-0.1,0-0.2,0.1-0.3c0.1-0.4,0.4-0.9,0.8-1.3C12.5,11.8,13.1,11.5,13.6,11.4z M14.1,11.9L14.1,11.9c-0.1-0.1-0.2-0.1-0.4-0.1
|
||||
c-0.4,0-1,0.3-1.4,0.8c-0.3,0.4-0.6,0.8-0.7,1.1c-0.1,0.3-0.1,0.6,0.1,0.7l0,0c0.1,0.1,0.4,0.1,0.7,0c0.4-0.1,0.7-0.4,1.1-0.8
|
||||
c0.5-0.5,0.7-1.1,0.7-1.5C14.2,12.1,14.2,11.9,14.1,11.9L14.1,11.9z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 4.6 KiB |
@ -22,7 +22,8 @@
|
||||
"PLA-CF",
|
||||
"PLA-AERO",
|
||||
"PVA",
|
||||
"BVOH"
|
||||
"BVOH",
|
||||
"SBS"
|
||||
],
|
||||
"high_low_compatible_filament":[
|
||||
"HIPS",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Anker",
|
||||
"version": "02.01.00.01",
|
||||
"version": "02.02.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Anker configurations",
|
||||
"machine_model_list": [
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Anycubic",
|
||||
"version": "02.01.00.01",
|
||||
"version": "02.02.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Anycubic configurations",
|
||||
"machine_model_list": [
|
||||
@ -15,6 +15,10 @@
|
||||
{
|
||||
"name": "Anycubic Vyper",
|
||||
"sub_path": "machine/Anycubic Vyper.json"
|
||||
},
|
||||
{
|
||||
"name": "Anycubic Kobra",
|
||||
"sub_path": "machine/Anycubic Kobra.json"
|
||||
},
|
||||
{
|
||||
"name": "Anycubic Kobra Max",
|
||||
@ -53,6 +57,10 @@
|
||||
{
|
||||
"name": "0.15mm Optimal @Anycubic Vyper",
|
||||
"sub_path": "process/0.15mm Optimal @Anycubic Vyper.json"
|
||||
},
|
||||
{
|
||||
"name": "0.15mm Optimal @Anycubic Kobra",
|
||||
"sub_path": "process/0.15mm Optimal @Anycubic Kobra.json"
|
||||
},
|
||||
{
|
||||
"name": "0.15mm Optimal @Anycubic KobraMax",
|
||||
@ -70,7 +78,7 @@
|
||||
"name": "0.15mm Optimal @Anycubic Kobra2",
|
||||
"sub_path": "process/0.15mm Optimal @Anycubic Kobra2.json"
|
||||
},
|
||||
{
|
||||
{
|
||||
"name": "0.20mm Standard @Anycubic i3MegaS",
|
||||
"sub_path": "process/0.20mm Standard @Anycubic i3MegaS.json"
|
||||
},
|
||||
@ -81,6 +89,10 @@
|
||||
{
|
||||
"name": "0.20mm Standard @Anycubic Vyper",
|
||||
"sub_path": "process/0.20mm Standard @Anycubic Vyper.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Anycubic Kobra",
|
||||
"sub_path": "process/0.20mm Standard @Anycubic Kobra.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Anycubic KobraMax",
|
||||
@ -113,6 +125,10 @@
|
||||
{
|
||||
"name": "0.30mm Draft @Anycubic Vyper",
|
||||
"sub_path": "process/0.30mm Draft @Anycubic Vyper.json"
|
||||
},
|
||||
{
|
||||
"name": "0.30mm Draft @Anycubic Kobra",
|
||||
"sub_path": "process/0.30mm Draft @Anycubic Kobra.json"
|
||||
},
|
||||
{
|
||||
"name": "0.30mm Draft @Anycubic KobraMax",
|
||||
@ -129,7 +145,7 @@
|
||||
{
|
||||
"name": "0.30mm Draft @Anycubic Kobra2",
|
||||
"sub_path": "process/0.30mm Draft @Anycubic Kobra2.json"
|
||||
}
|
||||
}
|
||||
],
|
||||
"filament_list": [
|
||||
{
|
||||
@ -225,6 +241,10 @@
|
||||
{
|
||||
"name": "Anycubic Vyper 0.4 nozzle",
|
||||
"sub_path": "machine/Anycubic Vyper 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Anycubic Kobra 0.4 nozzle",
|
||||
"sub_path": "machine/Anycubic Kobra 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Anycubic Kobra Max 0.4 nozzle",
|
||||
|
BIN
resources/profiles/Anycubic/Anycubic Kobra_cover.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
resources/profiles/Anycubic/anycubic_kobra_buildplate_model.stl
Normal file
After Width: | Height: | Size: 6.3 KiB |
@ -16,6 +16,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -16,6 +16,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -22,6 +22,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -19,6 +19,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -16,10 +16,11 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 2 0.4 nozzle",
|
||||
"Anycubic Kobra 2 0.4 nozzle"
|
||||
"Anycubic Kobra 2 0.4 nozzle"
|
||||
]
|
||||
}
|
@ -46,6 +46,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -22,6 +22,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -19,6 +19,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -22,6 +22,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -13,6 +13,7 @@
|
||||
"Anycubic i3 Mega S 0.4 nozzle",
|
||||
"Anycubic Chiron 0.4 nozzle",
|
||||
"Anycubic Vyper 0.4 nozzle",
|
||||
"Anycubic Kobra 0.4 nozzle",
|
||||
"Anycubic Kobra Max 0.4 nozzle",
|
||||
"Anycubic Kobra Plus 0.4 nozzle",
|
||||
"Anycubic 4Max Pro 0.4 nozzle",
|
||||
|
@ -0,0 +1,114 @@
|
||||
{
|
||||
"type": "machine",
|
||||
"setting_id": "GM001",
|
||||
"name": "Anycubic Kobra 0.4 nozzle",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_machine_common",
|
||||
"printer_model": "Anycubic Kobra",
|
||||
"default_print_profile": "0.20mm Standard @Anycubic Kobra",
|
||||
"nozzle_diameter": [
|
||||
"0.4"
|
||||
],
|
||||
"printable_area": [
|
||||
"0x0",
|
||||
"220x0",
|
||||
"220x220",
|
||||
"0x220"
|
||||
],
|
||||
"printable_height": "250",
|
||||
"nozzle_type": "undefine",
|
||||
"auxiliary_fan": "0",
|
||||
"machine_max_acceleration_extruding": [
|
||||
"1000",
|
||||
"1000"
|
||||
],
|
||||
"machine_max_acceleration_retracting": [
|
||||
"1000",
|
||||
"1000"
|
||||
],
|
||||
"machine_max_acceleration_travel": [
|
||||
"1000",
|
||||
"1000"
|
||||
],
|
||||
"machine_max_acceleration_x": [
|
||||
"700",
|
||||
"700"
|
||||
],
|
||||
"machine_max_acceleration_y": [
|
||||
"600",
|
||||
"600"
|
||||
],
|
||||
"machine_max_acceleration_z": [
|
||||
"50",
|
||||
"50"
|
||||
],
|
||||
"machine_max_speed_e": [
|
||||
"80",
|
||||
"80"
|
||||
],
|
||||
"machine_max_speed_x": [
|
||||
"300",
|
||||
"300"
|
||||
],
|
||||
"machine_max_speed_y": [
|
||||
"250",
|
||||
"250"
|
||||
],
|
||||
"machine_max_speed_z": [
|
||||
"20",
|
||||
"20"
|
||||
],
|
||||
"machine_max_jerk_e": [
|
||||
"10",
|
||||
"10"
|
||||
],
|
||||
"machine_max_jerk_x": [
|
||||
"20",
|
||||
"20"
|
||||
],
|
||||
"machine_max_jerk_y": [
|
||||
"20",
|
||||
"20"
|
||||
],
|
||||
"machine_max_jerk_z": [
|
||||
"0.6",
|
||||
"0.6"
|
||||
],
|
||||
"max_layer_height": [
|
||||
"0.3"
|
||||
],
|
||||
"min_layer_height": [
|
||||
"0.05"
|
||||
],
|
||||
"printer_settings_id": "Anycubic",
|
||||
"retraction_minimum_travel": [
|
||||
"1.5"
|
||||
],
|
||||
"retract_before_wipe": [
|
||||
"60%"
|
||||
],
|
||||
"retraction_length": [
|
||||
"6"
|
||||
],
|
||||
"retract_length_toolchange": [
|
||||
"1"
|
||||
],
|
||||
"retraction_speed": [
|
||||
"40"
|
||||
],
|
||||
"deretraction_speed": [
|
||||
"50"
|
||||
],
|
||||
"single_extruder_multi_material": "1",
|
||||
"change_filament_gcode": "M600",
|
||||
"machine_pause_gcode": "M601",
|
||||
"default_filament_profile": [
|
||||
"Anycubic Generic PLA"
|
||||
],
|
||||
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F1000 ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0",
|
||||
"machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F720 ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F3000 ; park print head\nM84 ; disable motors",
|
||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n",
|
||||
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
||||
"scan_first_layer": "0"
|
||||
}
|
12
resources/profiles/Anycubic/machine/Anycubic Kobra.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "machine_model",
|
||||
"name": "Anycubic Kobra",
|
||||
"model_id": "Anycubic-Kobra",
|
||||
"nozzle_diameter": "0.4",
|
||||
"machine_tech": "FFF",
|
||||
"family": "Anycubic",
|
||||
"bed_model": "anycubic_kobra_buildplate_model.stl",
|
||||
"bed_texture": "anycubic_kobra_buildplate_texture.png",
|
||||
"hotend_model": "",
|
||||
"default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF"
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.15mm Optimal @Anycubic Kobra",
|
||||
"from": "system",
|
||||
"inherits": "fdm_process_common",
|
||||
"instantiation": "true",
|
||||
"adaptive_layer_height": "1",
|
||||
"reduce_crossing_wall": "0",
|
||||
"layer_height": "0.15",
|
||||
"max_travel_detour_distance": "0",
|
||||
"bottom_surface_pattern": "monotonic",
|
||||
"bottom_shell_layers": "5",
|
||||
"bottom_shell_thickness": "1.2",
|
||||
"bridge_flow": "1",
|
||||
"bridge_speed": "45",
|
||||
"brim_width": "8",
|
||||
"brim_object_gap": "0",
|
||||
"compatible_printers_condition": "",
|
||||
"print_sequence": "by layer",
|
||||
"default_acceleration": "1000",
|
||||
"top_surface_acceleration": "0",
|
||||
"bridge_no_support": "0",
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.2",
|
||||
"enable_arc_fitting": "0",
|
||||
"outer_wall_line_width": "0.4",
|
||||
"wall_infill_order": "inner wall/outer wall/infill",
|
||||
"line_width": "0.4",
|
||||
"infill_direction": "45",
|
||||
"sparse_infill_density": "15%",
|
||||
"sparse_infill_pattern": "grid",
|
||||
"initial_layer_acceleration": "1000",
|
||||
"travel_acceleration": "0",
|
||||
"inner_wall_acceleration": "0",
|
||||
"initial_layer_line_width": "0.4",
|
||||
"initial_layer_print_height": "0.2",
|
||||
"infill_combination": "0",
|
||||
"sparse_infill_line_width": "0.4",
|
||||
"infill_wall_overlap": "15%",
|
||||
"interface_shells": "0",
|
||||
"ironing_flow": "15%",
|
||||
"ironing_spacing": "0.1",
|
||||
"ironing_speed": "15",
|
||||
"ironing_type": "no ironing",
|
||||
"reduce_infill_retraction": "1",
|
||||
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
|
||||
"detect_overhang_wall": "1",
|
||||
"overhang_1_4_speed": "0",
|
||||
"overhang_2_4_speed": "20",
|
||||
"overhang_3_4_speed": "15",
|
||||
"overhang_4_4_speed": "10",
|
||||
"inner_wall_line_width": "0.4",
|
||||
"wall_loops": "2",
|
||||
"print_settings_id": "",
|
||||
"raft_layers": "0",
|
||||
"seam_position": "aligned",
|
||||
"skirt_distance": "5",
|
||||
"skirt_height": "1",
|
||||
"skirt_loops": "4",
|
||||
"skirt_speed": "60",
|
||||
"minimum_sparse_infill_area": "10",
|
||||
"internal_solid_infill_line_width": "0",
|
||||
"spiral_mode": "0",
|
||||
"standby_temperature_delta": "-5",
|
||||
"enable_support": "0",
|
||||
"resolution": "0.012",
|
||||
"support_type": "normal(auto)",
|
||||
"support_style": "grid",
|
||||
"support_on_build_plate_only": "0",
|
||||
"support_top_z_distance": "0.15",
|
||||
"support_filament": "0",
|
||||
"support_line_width": "0.4",
|
||||
"support_interface_loop_pattern": "0",
|
||||
"support_interface_filament": "0",
|
||||
"support_interface_top_layers": "3",
|
||||
"support_interface_bottom_layers": "-1",
|
||||
"support_interface_spacing": "0.15",
|
||||
"support_interface_speed": "100%",
|
||||
"support_base_pattern": "rectilinear",
|
||||
"support_base_pattern_spacing": "0.15",
|
||||
"support_speed": "90",
|
||||
"support_threshold_angle": "65",
|
||||
"support_object_xy_distance": "60%",
|
||||
"tree_support_branch_angle": "40",
|
||||
"tree_support_wall_count": "0",
|
||||
"detect_thin_wall": "1",
|
||||
"top_surface_pattern": "monotonic",
|
||||
"top_surface_line_width": "0.4",
|
||||
"top_shell_layers": "5",
|
||||
"top_shell_thickness": "1.2",
|
||||
"initial_layer_speed": "30",
|
||||
"initial_layer_infill_speed": "30",
|
||||
"outer_wall_speed": "60",
|
||||
"precise_outer_wall": "1",
|
||||
"inner_wall_speed": "60",
|
||||
"internal_solid_infill_speed": "90",
|
||||
"top_surface_speed": "60",
|
||||
"gap_infill_speed": "30",
|
||||
"sparse_infill_speed": "90",
|
||||
"travel_speed": "180",
|
||||
"enable_prime_tower": "0",
|
||||
"wipe_tower_no_sparse_layers": "0",
|
||||
"prime_tower_width": "60",
|
||||
"xy_hole_compensation": "0",
|
||||
"xy_contour_compensation": "0",
|
||||
"wipe_before_external_loop": "1",
|
||||
"wipe_on_loops": "1",
|
||||
"elefant_foot_compensation_layers": "5",
|
||||
"slowdown_for_curled_perimeters": "1",
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra 0.4 nozzle"
|
||||
]
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.20mm Standard @Anycubic Kobra",
|
||||
"from": "system",
|
||||
"inherits": "fdm_process_common",
|
||||
"instantiation": "true",
|
||||
"adaptive_layer_height": "1",
|
||||
"reduce_crossing_wall": "0",
|
||||
"layer_height": "0.2",
|
||||
"max_travel_detour_distance": "0",
|
||||
"bottom_surface_pattern": "monotonic",
|
||||
"bottom_shell_layers": "5",
|
||||
"bottom_shell_thickness": "1.2",
|
||||
"bridge_flow": "1",
|
||||
"bridge_speed": "45",
|
||||
"brim_width": "8",
|
||||
"brim_object_gap": "0",
|
||||
"compatible_printers_condition": "",
|
||||
"print_sequence": "by layer",
|
||||
"default_acceleration": "1000",
|
||||
"top_surface_acceleration": "0",
|
||||
"bridge_no_support": "0",
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.2",
|
||||
"enable_arc_fitting": "0",
|
||||
"outer_wall_line_width": "0.4",
|
||||
"wall_infill_order": "inner wall/outer wall/infill",
|
||||
"line_width": "0.4",
|
||||
"infill_direction": "45",
|
||||
"sparse_infill_density": "15%",
|
||||
"sparse_infill_pattern": "grid",
|
||||
"initial_layer_acceleration": "1000",
|
||||
"travel_acceleration": "0",
|
||||
"inner_wall_acceleration": "0",
|
||||
"initial_layer_line_width": "0.4",
|
||||
"initial_layer_print_height": "0.2",
|
||||
"infill_combination": "0",
|
||||
"sparse_infill_line_width": "0.4",
|
||||
"infill_wall_overlap": "15%",
|
||||
"interface_shells": "0",
|
||||
"ironing_flow": "15%",
|
||||
"ironing_spacing": "0.1",
|
||||
"ironing_speed": "15",
|
||||
"ironing_type": "no ironing",
|
||||
"reduce_infill_retraction": "1",
|
||||
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
|
||||
"detect_overhang_wall": "1",
|
||||
"overhang_1_4_speed": "0",
|
||||
"overhang_2_4_speed": "20",
|
||||
"overhang_3_4_speed": "15",
|
||||
"overhang_4_4_speed": "10",
|
||||
"inner_wall_line_width": "0.4",
|
||||
"wall_loops": "2",
|
||||
"print_settings_id": "",
|
||||
"raft_layers": "0",
|
||||
"seam_position": "aligned",
|
||||
"skirt_distance": "5",
|
||||
"skirt_height": "1",
|
||||
"skirt_loops": "4",
|
||||
"skirt_speed": "60",
|
||||
"minimum_sparse_infill_area": "10",
|
||||
"internal_solid_infill_line_width": "0",
|
||||
"spiral_mode": "0",
|
||||
"standby_temperature_delta": "-5",
|
||||
"enable_support": "0",
|
||||
"resolution": "0.012",
|
||||
"support_type": "normal(auto)",
|
||||
"support_style": "grid",
|
||||
"support_on_build_plate_only": "0",
|
||||
"support_top_z_distance": "0.2",
|
||||
"support_filament": "0",
|
||||
"support_line_width": "0.4",
|
||||
"support_interface_loop_pattern": "0",
|
||||
"support_interface_filament": "0",
|
||||
"support_interface_top_layers": "3",
|
||||
"support_interface_bottom_layers": "-1",
|
||||
"support_interface_spacing": "0.2",
|
||||
"support_interface_speed": "100%",
|
||||
"support_base_pattern": "rectilinear",
|
||||
"support_base_pattern_spacing": "0.2",
|
||||
"support_speed": "90",
|
||||
"support_threshold_angle": "65",
|
||||
"support_object_xy_distance": "60%",
|
||||
"tree_support_branch_angle": "40",
|
||||
"tree_support_wall_count": "0",
|
||||
"detect_thin_wall": "1",
|
||||
"top_surface_pattern": "monotonic",
|
||||
"top_surface_line_width": "0.4",
|
||||
"top_shell_layers": "5",
|
||||
"top_shell_thickness": "1.2",
|
||||
"initial_layer_speed": "30",
|
||||
"initial_layer_infill_speed": "30",
|
||||
"outer_wall_speed": "60",
|
||||
"precise_outer_wall": "1",
|
||||
"inner_wall_speed": "60",
|
||||
"internal_solid_infill_speed": "90",
|
||||
"top_surface_speed": "60",
|
||||
"gap_infill_speed": "30",
|
||||
"sparse_infill_speed": "90",
|
||||
"travel_speed": "180",
|
||||
"enable_prime_tower": "0",
|
||||
"wipe_tower_no_sparse_layers": "0",
|
||||
"prime_tower_width": "60",
|
||||
"xy_hole_compensation": "0",
|
||||
"xy_contour_compensation": "0",
|
||||
"wipe_before_external_loop": "1",
|
||||
"wipe_on_loops": "1",
|
||||
"elefant_foot_compensation_layers": "5",
|
||||
"slowdown_for_curled_perimeters": "1",
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra 0.4 nozzle"
|
||||
]
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.30mm Draft @Anycubic Kobra",
|
||||
"from": "system",
|
||||
"inherits": "fdm_process_common",
|
||||
"instantiation": "true",
|
||||
"adaptive_layer_height": "1",
|
||||
"reduce_crossing_wall": "0",
|
||||
"layer_height": "0.3",
|
||||
"max_travel_detour_distance": "0",
|
||||
"bottom_surface_pattern": "monotonic",
|
||||
"bottom_shell_layers": "5",
|
||||
"bottom_shell_thickness": "1.2",
|
||||
"bridge_flow": "1",
|
||||
"bridge_speed": "45",
|
||||
"brim_width": "8",
|
||||
"brim_object_gap": "0",
|
||||
"compatible_printers_condition": "",
|
||||
"print_sequence": "by layer",
|
||||
"default_acceleration": "1000",
|
||||
"top_surface_acceleration": "0",
|
||||
"bridge_no_support": "0",
|
||||
"draft_shield": "disabled",
|
||||
"elefant_foot_compensation": "0.2",
|
||||
"enable_arc_fitting": "0",
|
||||
"outer_wall_line_width": "0.4",
|
||||
"wall_infill_order": "inner wall/outer wall/infill",
|
||||
"line_width": "0.4",
|
||||
"infill_direction": "45",
|
||||
"sparse_infill_density": "15%",
|
||||
"sparse_infill_pattern": "grid",
|
||||
"initial_layer_acceleration": "1000",
|
||||
"travel_acceleration": "0",
|
||||
"inner_wall_acceleration": "0",
|
||||
"initial_layer_line_width": "0.4",
|
||||
"initial_layer_print_height": "0.2",
|
||||
"infill_combination": "0",
|
||||
"sparse_infill_line_width": "0.4",
|
||||
"infill_wall_overlap": "15%",
|
||||
"interface_shells": "0",
|
||||
"ironing_flow": "15%",
|
||||
"ironing_spacing": "0.1",
|
||||
"ironing_speed": "15",
|
||||
"ironing_type": "no ironing",
|
||||
"reduce_infill_retraction": "1",
|
||||
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
|
||||
"detect_overhang_wall": "1",
|
||||
"overhang_1_4_speed": "0",
|
||||
"overhang_2_4_speed": "20",
|
||||
"overhang_3_4_speed": "15",
|
||||
"overhang_4_4_speed": "10",
|
||||
"inner_wall_line_width": "0.4",
|
||||
"wall_loops": "2",
|
||||
"print_settings_id": "",
|
||||
"raft_layers": "0",
|
||||
"seam_position": "aligned",
|
||||
"skirt_distance": "5",
|
||||
"skirt_height": "1",
|
||||
"skirt_loops": "4",
|
||||
"skirt_speed": "60",
|
||||
"minimum_sparse_infill_area": "10",
|
||||
"internal_solid_infill_line_width": "0",
|
||||
"spiral_mode": "0",
|
||||
"standby_temperature_delta": "-5",
|
||||
"enable_support": "0",
|
||||
"resolution": "0.012",
|
||||
"support_type": "normal(auto)",
|
||||
"support_style": "grid",
|
||||
"support_on_build_plate_only": "0",
|
||||
"support_top_z_distance": "0.3",
|
||||
"support_filament": "0",
|
||||
"support_line_width": "0.4",
|
||||
"support_interface_loop_pattern": "0",
|
||||
"support_interface_filament": "0",
|
||||
"support_interface_top_layers": "3",
|
||||
"support_interface_bottom_layers": "-1",
|
||||
"support_interface_spacing": "0.3",
|
||||
"support_interface_speed": "100%",
|
||||
"support_base_pattern": "rectilinear",
|
||||
"support_base_pattern_spacing": "0.3",
|
||||
"support_speed": "90",
|
||||
"support_threshold_angle": "65",
|
||||
"support_object_xy_distance": "60%",
|
||||
"tree_support_branch_angle": "40",
|
||||
"tree_support_wall_count": "0",
|
||||
"detect_thin_wall": "1",
|
||||
"top_surface_pattern": "monotonic",
|
||||
"top_surface_line_width": "0.4",
|
||||
"top_shell_layers": "5",
|
||||
"top_shell_thickness": "1.2",
|
||||
"initial_layer_speed": "30",
|
||||
"initial_layer_infill_speed": "30",
|
||||
"outer_wall_speed": "60",
|
||||
"precise_outer_wall": "1",
|
||||
"inner_wall_speed": "60",
|
||||
"internal_solid_infill_speed": "90",
|
||||
"top_surface_speed": "60",
|
||||
"gap_infill_speed": "30",
|
||||
"sparse_infill_speed": "90",
|
||||
"travel_speed": "180",
|
||||
"enable_prime_tower": "0",
|
||||
"wipe_tower_no_sparse_layers": "0",
|
||||
"prime_tower_width": "60",
|
||||
"xy_hole_compensation": "0",
|
||||
"xy_contour_compensation": "0",
|
||||
"wipe_before_external_loop": "1",
|
||||
"wipe_on_loops": "1",
|
||||
"elefant_foot_compensation_layers": "5",
|
||||
"slowdown_for_curled_perimeters": "1",
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra 0.4 nozzle"
|
||||
]
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Artillery",
|
||||
"version": "02.01.00.01",
|
||||
"version": "02.02.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Artillery configurations",
|
||||
"machine_model_list": [
|
||||
@ -23,6 +23,22 @@
|
||||
{
|
||||
"name": "Artillery Hornet",
|
||||
"sub_path": "machine/Artillery Hornet.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X3 Pro",
|
||||
"sub_path": "machine/Artillery Sidewinder X3 Pro.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X3 Plus",
|
||||
"sub_path": "machine/Artillery Sidewinder X3 Plus.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X4 Pro",
|
||||
"sub_path": "machine/Artillery Sidewinder X4 Pro.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X4 Plus",
|
||||
"sub_path": "machine/Artillery Sidewinder X4 Plus.json"
|
||||
}
|
||||
],
|
||||
"process_list": [
|
||||
@ -81,6 +97,94 @@
|
||||
{
|
||||
"name": "0.24mm Draft @Artillery Hornet",
|
||||
"sub_path": "process/0.24mm Draft @Artillery Hornet.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.08mm High Quality @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.08mm High Quality @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.12mm Fine @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.12mm Fine @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.12mm High Quality @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.12mm High Quality @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.16mm High Quality @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.16mm High Quality @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.16mm Optimal @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.16mm Optimal @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Strength @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Strength @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.24mm Draft @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.24mm Draft @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.08mm Extra Fine @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.08mm Extra Fine @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.08mm High Quality @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.08mm High Quality @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.12mm Fine @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.12mm Fine @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.12mm High Quality @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.12mm High Quality @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.16mm High Quality @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.16mm High Quality @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.16mm Optimal @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.16mm Optimal @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Strength @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Strength @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.24mm Draft @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.24mm Draft @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.28mm Extra Draft @Artillery X4Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.28mm Extra Draft @Artillery X4Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Artillery X3Plus 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "0.20mm Standard @Artillery X3Pro 0.4 nozzle",
|
||||
"sub_path": "process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json"
|
||||
}
|
||||
],
|
||||
"filament_list": [
|
||||
@ -131,6 +235,34 @@
|
||||
{
|
||||
"name": "Artillery Generic ASA",
|
||||
"sub_path": "filament/Artillery Generic ASA.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery PLA Basic",
|
||||
"sub_path": "filament/Artillery PLA Basic.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery PLA Matte",
|
||||
"sub_path": "filament/Artillery PLA Matte.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery PLA Silk",
|
||||
"sub_path": "filament/Artillery PLA Silk.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery PLA Tough",
|
||||
"sub_path": "filament/Artillery PLA Tough.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery PETG",
|
||||
"sub_path": "filament/Artillery PETG.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery TPU",
|
||||
"sub_path": "filament/Artillery TPU.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery ABS",
|
||||
"sub_path": "filament/Artillery ABS.json"
|
||||
}
|
||||
],
|
||||
"machine_list": [
|
||||
@ -157,6 +289,22 @@
|
||||
{
|
||||
"name": "Artillery Hornet 0.4 nozzle",
|
||||
"sub_path": "machine/Artillery Hornet 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X3 Pro 0.4 nozzle",
|
||||
"sub_path": "machine/Artillery Sidewinder X3 Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X3 Plus 0.4 nozzle",
|
||||
"sub_path": "machine/Artillery Sidewinder X3 Plus 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X4 Pro 0.4 nozzle",
|
||||
"sub_path": "machine/Artillery Sidewinder X4 Pro 0.4 nozzle.json"
|
||||
},
|
||||
{
|
||||
"name": "Artillery Sidewinder X4 Plus 0.4 nozzle",
|
||||
"sub_path": "machine/Artillery Sidewinder X4 Plus 0.4 nozzle.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 28 KiB |