diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000000..4e841c04bb
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,2 @@
+ARG BASE_IMAGE
+FROM ${BASE_IMAGE}
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 413866a667..07d6a4b0d0 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,13 @@
{
"name": "OrcaSlicer",
- "image": "mcr.microsoft.com/devcontainers/cpp:ubuntu-20.04",
+ "build": {
+ "dockerfile": "Dockerfile",
+ "args": {
+ "PLATFORM": "linux/amd64",
+ "BASE_IMAGE": "mcr.microsoft.com/devcontainers/cpp:ubuntu-20.04"
+ },
+ "options": ["--platform=linux/amd64"]
+ },
"runArgs": ["--env-file", "/tmp/devcontainer.env"],
"features": {
"ghcr.io/devcontainers/features/desktop-lite:1": {
@@ -48,4 +55,4 @@
"Set postCreate executable flag": "chmod +x .devcontainer/postCreate.sh"
},
"postCreateCommand": "sudo .devcontainer/postCreate.sh"
-}
\ No newline at end of file
+}
diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml
index dc24e2aa63..f71148e6ed 100644
--- a/.github/workflows/build_all.yml
+++ b/.github/workflows/build_all.yml
@@ -60,21 +60,21 @@ jobs:
arch: ${{ matrix.arch }}
build-deps-only: ${{ inputs.build-deps-only || false }}
secrets: inherit
- # flatpak:
- # name: "Flatpak"
- # runs-on: ubuntu-latest
- # container:
- # image: bilelmoussaoui/flatpak-github-actions:gnome-45
- # options: --privileged
- # steps:
- # # maybe i'm too dumb and fucked up to do CI. OH WELL :D -ppd
- # - name: "Remove unneeded stuff to free disk space"
- # run:
- # sudo rm -rf /usr/share/dotnet /opt/ghc "/usr/local/share/boost" "$AGENT_TOOLSDIRECTORY"
- # - uses: actions/checkout@v4
- # - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
- # with:
- # bundle: orcaslicer.flatpak
- # manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
- # cache-key: flatpak-builder-${{ github.sha }}
- # cache: false
\ No newline at end of file
+ flatpak:
+ name: "Flatpak"
+ runs-on: ubuntu-latest
+ container:
+ image: bilelmoussaoui/flatpak-github-actions:gnome-46
+ options: --privileged
+ steps:
+ # maybe i'm too dumb and fucked up to do CI. OH WELL :D -ppd
+ - name: "Remove unneeded stuff to free disk space"
+ run:
+ sudo rm -rf /usr/share/dotnet /opt/ghc "/usr/local/share/boost" "$AGENT_TOOLSDIRECTORY"
+ - uses: actions/checkout@v4
+ - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
+ with:
+ bundle: orcaslicer.flatpak
+ manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
+ cache-key: flatpak-builder-${{ github.sha }}
+ cache: false
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 197694e020..40fe0d0918 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -302,6 +302,10 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-gz=zstd)
endif()
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=template-id-cdtor" )
+ endif()
+
endif()
if (SLIC3R_ASAN)
@@ -407,12 +411,14 @@ if(SLIC3R_STATIC)
set(Boost_USE_STATIC_LIBS ON)
# Use boost libraries linked statically to the C++ runtime.
# set(Boost_USE_STATIC_RUNTIME ON)
+else()
+ add_definitions(-DBOOST_LOG_DYN_LINK)
endif()
#set(Boost_DEBUG ON)
# set(Boost_COMPILER "-mgw81")
# boost::process was introduced first in version 1.64.0,
# boost::beast::detail::base64 was introduced first in version 1.66.0
-find_package(Boost 1.66 REQUIRED COMPONENTS system filesystem thread log locale regex chrono atomic date_time iostreams program_options)
+find_package(Boost 1.66 REQUIRED COMPONENTS system filesystem thread log log_setup locale regex chrono atomic date_time iostreams program_options)
add_library(boost_libs INTERFACE)
add_library(boost_headeronly INTERFACE)
diff --git a/DockerBuild.sh b/DockerBuild.sh
index 18b7777bf8..99c499b526 100755
--- a/DockerBuild.sh
+++ b/DockerBuild.sh
@@ -2,7 +2,6 @@
PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
set -x
-
# Wishlist hint: For developers, creating a Docker Compose
# setup with persistent volumes for the build & deps directories
# would speed up recompile times significantly. For end users,
diff --git a/DockerRun.sh b/DockerRun.sh
index c06628e6be..c05022b1b8 100755
--- a/DockerRun.sh
+++ b/DockerRun.sh
@@ -5,6 +5,8 @@ set -x
# -h $HOSTNAME \
# If there's problems with the X display, try this
# -v /tmp/.X11-unix:/tmp/.X11-unix \
+# If you get an error like "Authorization required, but no authorization protocol specified," run line 9 in your terminal before rerunning this program
+# xhost +local:docker
docker run \
`# Use the hosts networking. Printer wifi and also dbus communication` \
--net=host \
diff --git a/Dockerfile b/Dockerfile
index 868779b0af..3e8a33f3fb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -68,14 +68,14 @@ WORKDIR OrcaSlicer
RUN ./BuildLinux.sh -u
# Build dependencies in ./deps
-RUN ./BuildLinux.sh -d
+RUN ./BuildLinux.sh -dr
# Build slic3r
-RUN ./BuildLinux.sh -s
+RUN ./BuildLinux.sh -sr
# Build AppImage
ENV container podman
-RUN ./BuildLinux.sh -i
+RUN ./BuildLinux.sh -ir
# It's easier to run Orca Slicer as the same username,
# UID and GID as your workstation. Since we bind mount
diff --git a/README.md b/README.md
index d5b9309fce..4db8501db4 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Join our Discord community here:
🚨🚨🚨Important Security Alert🚨🚨🚨
-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.
+Please be aware that "**orcaslicer.net**" or "**orcaslicer.info**" are 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 official Discord channel .
@@ -103,11 +103,19 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
- Run => Options tab => Document Versions: uncheck `Allow debugging when browsing versions`
- 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`
- - run 'sudo ./BuildLinux.sh -u'
- - run './BuildLinux.sh -dsir'
-
+- Linux (All Distros)
+ - Docker
+ - Dependencies: Docker [Installation Instructions](https://www.docker.com/get-started/), git
+ - clone this repository `git clone https://github.com/SoftFever/OrcaSlicer`
+ - run `cd OrcaSlicer`
+ - run `./DockerBuild.sh`
+ - To run OrcaSlicer:
+ - run `./DockerRun.sh`
+ - For most common errors, open `DockerRun.sh` and read the comments.
+ - 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`
+ - run 'sudo ./BuildLinux.sh -u'
+ - run './BuildLinux.sh -dsir'
# Note:
If you're running Klipper, it's recommended to add the following configuration to your `printer.cfg` file.
@@ -134,11 +142,6 @@ Thank you! :)
-
-
-
-
-
diff --git a/SoftFever_doc/sponsor_logos/Phrozen_Logo圓_.png b/SoftFever_doc/sponsor_logos/Phrozen_Logo圓_.png
deleted file mode 100644
index 2bf62bef54..0000000000
Binary files a/SoftFever_doc/sponsor_logos/Phrozen_Logo圓_.png and /dev/null differ
diff --git a/SoftFever_doc/sponsor_logos/QIDI.png b/SoftFever_doc/sponsor_logos/QIDI.png
index 9b4f8e0ed1..d7ffa792f9 100644
Binary files a/SoftFever_doc/sponsor_logos/QIDI.png and b/SoftFever_doc/sponsor_logos/QIDI.png differ
diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt
index 4bd3470d44..88915369f7 100644
--- a/deps/CMakeLists.txt
+++ b/deps/CMakeLists.txt
@@ -30,6 +30,10 @@ if (APPLE)
endif ()
+if(POLICY CMP0135) # DOWNLOAD_EXTRACT_TIMESTAMP
+ cmake_policy(SET CMP0135 NEW)
+endif()
+
project(OrcaSlicer-deps)
include(ExternalProject)
@@ -56,10 +60,6 @@ endif ()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(DEP_WX_GTK3 "Build wxWidgets against GTK3" OFF)
-else()
- if(POLICY CMP0135) # DOWNLOAD_EXTRACT_TIMESTAMP
- cmake_policy(SET CMP0135 NEW)
- endif()
endif()
set(IS_CROSS_COMPILE FALSE)
diff --git a/doc/developer-reference/Home.md b/doc/developer-reference/Home.md
index ab08f2cbfe..99a9c0f689 100644
--- a/doc/developer-reference/Home.md
+++ b/doc/developer-reference/Home.md
@@ -4,3 +4,4 @@ This is a documentation from someone exploring the code and is by no means compl
- [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)
+- [Slicing Call Hierarchy](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/slicing-hierarchy.md)
diff --git a/doc/developer-reference/slicing-hierarchy.md b/doc/developer-reference/slicing-hierarchy.md
new file mode 100644
index 0000000000..65d28e11aa
--- /dev/null
+++ b/doc/developer-reference/slicing-hierarchy.md
@@ -0,0 +1,5 @@
+## Slicing Call Hierarchy
+
+The Slicing logic is not the easiest to locate in the code base. Below is a flow diagram of function calls that are made after clicking the `Slice Plate` button in the UI. Most of the processing happens in different threads. Note the calls after `BackgroundSlicingProcess::start()`, but this is how you can find the slicing logic.
+
+
diff --git a/doc/images/slicing_call_heirarchy.svg b/doc/images/slicing_call_heirarchy.svg
new file mode 100644
index 0000000000..2a2ffbf847
--- /dev/null
+++ b/doc/images/slicing_call_heirarchy.svg
@@ -0,0 +1,4 @@
+
+
+
+void Plater::priv::on_action_slice_plate(SimpleEvent&)
bool Plater::priv::restart_background_process(unsigned int state)
bool BackgroundSlicingProcess::start()
void BackgroundSlicingProcess::thread_proc_safe_seh_throw()
unsigned long BackgroundSlicingProcess::thread_proc_safe_seh()
void BackgroundSlicingProcess::thread_proc_safe()
void BackgroundSlicingProcess::thread_proc()
void BackgroundSlicingProcess::call_process_seh_throw(std::exception_ptr &ex)
unsigned long BackgroundSlicingProcess::call_process_seh(std::exception_ptr &ex)
void BackgroundSlicingProcess::call_process(std::exception_ptr &ex)
void BackgroundSlicingProcess::process_fff()
void Print::process(long long *time_cost_with_cache, bool use_cache)
void PrintObject::make_perimeters()
void PrintObject::slice()
\ No newline at end of file
diff --git a/flatpak/entrypoint b/flatpak/entrypoint
index 958d1cd130..38fd86f451 100644
--- a/flatpak/entrypoint
+++ b/flatpak/entrypoint
@@ -6,10 +6,4 @@ grep -q org.freedesktop.Platform.GL.nvidia /.flatpak-info && export WEBKIT_DISAB
# Work-around https://github.com/bambulab/BambuStudio/issues/3440
export LC_ALL=C.UTF-8
-if [ $BAMBU_STUDIO_DARK_THEME == true ]; then
- export GTK_THEME='Adwaita:dark'
- # echo "Message: $(date +%T): INFO: using dark theme variant"
-fi
-
-exec /app/bin/orca-slicer "$@" &
-$(/app/bin/set-dark-theme-variant.py) &
+exec /app/bin/orca-slicer "$@"
diff --git a/flatpak/io.github.softfever.OrcaSlicer.yml b/flatpak/io.github.softfever.OrcaSlicer.yml
index c5ba50f02c..0eb8b86c14 100755
--- a/flatpak/io.github.softfever.OrcaSlicer.yml
+++ b/flatpak/io.github.softfever.OrcaSlicer.yml
@@ -1,6 +1,6 @@
app-id: io.github.softfever.OrcaSlicer
runtime: org.gnome.Platform
-runtime-version: "45"
+runtime-version: "46"
sdk: org.gnome.Sdk
command: entrypoint
separate-locales: true
@@ -14,11 +14,11 @@ finish-args:
- --filesystem=xdg-run/gvfs
- --filesystem=/run/media
- --filesystem=/media
+ - --filesystem=/run/spnav.sock:ro
# Allow OrcaSlicer to talk to other instances
- --talk-name=io.github.softfever.OrcaSlicer.InstanceCheck.*
- --system-talk-name=org.freedesktop.UDisks2
- # set dark theme
- - --env=BAMBU_STUDIO_DARK_THEME=false
+ - --env=SPNAV_SOCKET=/run/spnav.sock
modules:
@@ -36,47 +36,6 @@ modules:
url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz
sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39
- # xprop, xlib is needed to manipulate the X11 window and set _GTK_THEME_VARIANT dark on X11
- # and paint the window dark when PRUSA_SLICER_DARK_THEME is true
- # see: entrypoint & set-dark-theme-variant.py (originated from spotify client flatpak)
- - name: xprop
- sources:
- - 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:
- - pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
- sources:
- - type: archive
- url: https://files.pythonhosted.org/packages/57/38/930b1241372a9f266a7df2b184fb9d4f497c2cef2e016b014f82f541fe7c/setuptools_scm-6.0.1.tar.gz
- sha256: d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92
- - name: python-xlib
- buildsystem: simple
- build-commands:
- - pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
- sources:
- - type: archive
- url: https://files.pythonhosted.org/packages/86/f5/8c0653e5bb54e0cbdfe27bf32d41f27bc4e12faa8742778c17f2a71be2c0/python-xlib-0.33.tar.gz
- sha256: 55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32
-
# For libOSMesa
- name: mesa
buildsystem: meson
@@ -121,6 +80,12 @@ modules:
tag: v5.249.0
cleanup:
- /
+
+ - name: libspnav
+ sources:
+ - type: archive
+ url: https://github.com/FreeSpacenav/libspnav/releases/download/v1.1/libspnav-1.1.tar.gz
+ sha256: 04b297f68a10db4fa40edf68d7f823ba7b9d0442f2b665181889abe2cea42759
- name: orca_wxwidgets
buildsystem: simple
@@ -162,6 +127,8 @@ modules:
url: https://github.com/SoftFever/Orca-deps-wxWidgets
branch: master
path: ../
+ - type: patch
+ path: patches/0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch
cleanup:
- "*.la"
- "*.a"
@@ -323,7 +290,6 @@ modules:
install -Dm644 ${FLATPAK_ID}.metainfo.xml /app/share/metainfo/${FLATPAK_ID}.metainfo.xml
mv /app/share/applications/OrcaSlicer.desktop /app/share/applications/${FLATPAK_ID}.desktop
desktop-file-edit --set-key=Exec --set-value="entrypoint %U" /app/share/applications/${FLATPAK_ID}.desktop
- install -Dm755 set-dark-theme-variant.py /app/bin
install -Dm755 entrypoint /app/bin
install -Dm755 umount /app/bin
@@ -343,15 +309,7 @@ modules:
- type: file
path: io.github.softfever.OrcaSlicer.metainfo.xml
- # script to set dark theme variant
- - type: file
- path: set-dark-theme-variant.py
-
# start-up script
- # README: workaround for the following issues, also enables dark theme variant:
- # SEE: https://github.com/flathub/com.bambulab.BambuStudio/issues/27
- # SEE: https://github.com/flathub/com.bambulab.BambuStudio/issues/3
- # SEE: https://github.com/prusa3d/PrusaSlicer/issues/2365
- type: file
path: entrypoint
diff --git a/flatpak/patches/0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch b/flatpak/patches/0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch
new file mode 100644
index 0000000000..7f8bd07d44
--- /dev/null
+++ b/flatpak/patches/0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch
@@ -0,0 +1,158 @@
+From 221be0af1a0b5bcf05c59b3403f969643b42dbaf Mon Sep 17 00:00:00 2001
+From: Paul Cornett
+Date: Sat, 30 Sep 2023 16:42:58 -0700
+Subject: [PATCH] Enable using a dark theme when Gnome "dark style" is set
+
+The dark style setting does not cause a dark theme to be used
+automatically, so request it explicitly.
+
+Co-authored-by: Colin Kinloch
+---
+ src/gtk/settings.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 111 insertions(+), 1 deletion(-)
+
+diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp
+index 304724773711..74898d9bb953 100644
+--- a/src/gtk/settings.cpp
++++ b/src/gtk/settings.cpp
+@@ -183,6 +183,64 @@ static void notify_gtk_font_name(GObject*, GParamSpec*, void*)
+ }
+ }
+
++static bool UpdatePreferDark(GVariant* value)
++{
++ // 0: No preference, 1: Prefer dark appearance, 2: Prefer light appearance
++ gboolean preferDark = g_variant_get_uint32(value) == 1;
++
++ GtkSettings* settings = gtk_settings_get_default();
++ char* themeName;
++ gboolean preferDarkPrev;
++ g_object_get(settings,
++ "gtk-theme-name", &themeName,
++ "gtk-application-prefer-dark-theme", &preferDarkPrev, nullptr);
++
++ // We don't need to enable prefer-dark if the theme is already dark
++ if (strstr(themeName, "-dark") || strstr(themeName, "-Dark"))
++ preferDark = false;
++ g_free(themeName);
++
++ const bool changed = preferDark != preferDarkPrev;
++ if (changed)
++ {
++ g_object_set(settings,
++ "gtk-application-prefer-dark-theme", preferDark, nullptr);
++ }
++ return changed;
++}
++
++// "g-signal" from GDBusProxy
++extern "C" {
++static void
++proxy_g_signal(GDBusProxy*, const char*, const char* signal_name, GVariant* parameters, void*)
++{
++ if (strcmp(signal_name, "SettingChanged") != 0)
++ return;
++
++ const char* nameSpace;
++ const char* key;
++ GVariant* value;
++ g_variant_get(parameters, "(&s&sv)", &nameSpace, &key, &value);
++ if (strcmp(nameSpace, "org.freedesktop.appearance") == 0 &&
++ strcmp(key, "color-scheme") == 0)
++ {
++ if (UpdatePreferDark(value))
++ {
++ for (int i = wxSYS_COLOUR_MAX; i--;)
++ gs_systemColorCache[i].UnRef();
++
++ for (auto* win: wxTopLevelWindows)
++ {
++ wxSysColourChangedEvent event;
++ event.SetEventObject(win);
++ win->HandleWindowEvent(event);
++ }
++ }
++ }
++ g_variant_unref(value);
++}
++}
++
+ // Some notes on using GtkStyleContext. Style information from a context
+ // attached to a non-visible GtkWidget is not accurate. The context has an
+ // internal visibility state, controlled by the widget, which it presumably
+@@ -1124,12 +1182,62 @@ bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
+ class wxSystemSettingsModule: public wxModule
+ {
+ public:
+- virtual bool OnInit() wxOVERRIDE { return true; }
++ virtual bool OnInit() wxOVERRIDE;
+ virtual void OnExit() wxOVERRIDE;
++
++#ifdef __WXGTK3__
++ GDBusProxy* m_proxy;
++#endif
+ wxDECLARE_DYNAMIC_CLASS(wxSystemSettingsModule);
+ };
+ wxIMPLEMENT_DYNAMIC_CLASS(wxSystemSettingsModule, wxModule);
+
++bool wxSystemSettingsModule::OnInit()
++{
++#ifdef __WXGTK3__
++ // Gnome has gone to a dark style setting rather than a selectable dark
++ // theme, available via GSettings as the 'color-scheme' key under the
++ // 'org.gnome.desktop.interface' schema. It's also available via a "portal"
++ // (https://docs.flatpak.org/en/latest/portal-api-reference.html), which
++ // has the advantage of allowing the setting to be accessed from within a
++ // virtualized environment such as Flatpak. Since the setting does not
++ // change the theme, we propagate it to the GtkSettings
++ // 'gtk-application-prefer-dark-theme' property to get a dark theme.
++
++ m_proxy = nullptr;
++
++ // GTK_THEME environment variable overrides other settings
++ if (getenv("GTK_THEME") == nullptr)
++ {
++ m_proxy = g_dbus_proxy_new_for_bus_sync(
++ G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, nullptr,
++ "org.freedesktop.portal.Desktop",
++ "/org/freedesktop/portal/desktop",
++ "org.freedesktop.portal.Settings",
++ nullptr, nullptr);
++ }
++ if (m_proxy)
++ {
++ g_signal_connect(m_proxy, "g-signal", G_CALLBACK(proxy_g_signal), nullptr);
++
++ GVariant* ret = g_dbus_proxy_call_sync(m_proxy, "Read",
++ g_variant_new("(ss)", "org.freedesktop.appearance", "color-scheme"),
++ G_DBUS_CALL_FLAGS_NONE, -1, nullptr, nullptr);
++ if (ret)
++ {
++ GVariant* child;
++ g_variant_get(ret, "(v)", &child);
++ GVariant* value = g_variant_get_variant(child);
++ UpdatePreferDark(value);
++ g_variant_unref(value);
++ g_variant_unref(child);
++ g_variant_unref(ret);
++ }
++ }
++#endif // __WXGTK3__
++ return true;
++}
++
+ void wxSystemSettingsModule::OnExit()
+ {
+ #ifdef __WXGTK3__
+@@ -1141,6 +1249,8 @@ void wxSystemSettingsModule::OnExit()
+ g_signal_handlers_disconnect_by_func(settings,
+ (void*)notify_gtk_font_name, NULL);
+ }
++ if (m_proxy)
++ g_object_unref(m_proxy);
+ #endif
+ if (gs_tlw_parent)
+ {
+--
+2.46.2
+
diff --git a/flatpak/set-dark-theme-variant.py b/flatpak/set-dark-theme-variant.py
deleted file mode 100644
index 78bbf5d690..0000000000
--- a/flatpak/set-dark-theme-variant.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python3
-
-import Xlib
-import Xlib.display
-import time
-import subprocess
-import os
-import sys
-
-
-disp = Xlib.display.Display()
-root = disp.screen().root
-
-NET_CLIENT_LIST = disp.intern_atom('_NET_CLIENT_LIST')
-
-
-def set_theme_variant_by_window_id(id, variant):
- # Use subprocess to call
- # xprop and set the variant from id.
- try:
- s = subprocess.call(['xprop', '-f', '_GTK_THEME_VARIANT', '8u', '-set', '_GTK_THEME_VARIANT', variant, '-id', str(id)],
- stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
- if s == 0:
- return True
- return False
- except Exception as ex:
- return False
-
-
-def set_theme_variant_from_win_id_collection(win_id_collection, variant):
- # Loop though all of the collected
- # window ids and set theme variant
- for win_id in win_id_collection:
- set_theme_variant_by_window_id(win_id, variant)
-
-
-def collection_win_id_from_wm_class_name(win_class_name):
-
- collect = []
-
- # Loop though all of the windows
- # and collect id's those that match
- # win_class: prusa-slicer
- for win_id in root.get_full_property(NET_CLIENT_LIST, Xlib.X.AnyPropertyType).value:
- try:
- win = disp.create_resource_object('window', win_id)
- if not win.get_wm_transient_for():
- win_class = win.get_wm_class()
- if win_id and win_class_name in win_class:
- collect.append(
- win_id) if win_id not in collect else collect
- except Xlib.error.BadWindow:
- pass
-
- return collect
-
-
-if __name__ == '__main__':
-
- if os.environ.get('PRUSA_SLICER_DARK_THEME', 'false') != 'true':
- sys.exit(0)
-
- # Listen for X Property Change events.
- root.change_attributes(event_mask=Xlib.X.PropertyChangeMask)
- # the class name of the slicer window
- win_class_name = 'prusa-slicer'
- # the variant to set
- variant = 'dark'
-
- start = time.time()
-
- while True:
- # collect all of the window ids
- collect = collection_win_id_from_wm_class_name(win_class_name)
- # give PrusaSlicer window 2 secs to
- # collect the wanted window ids
- # set the theme variant and exit
- if time.time() - start <= 2:
- # disp.next_event() blocks if no events are
- # queued. In combination with while True
- # it creates a very simple event loop.
- disp.next_event()
- set_theme_variant_from_win_id_collection(collect, variant)
- else:
- break
diff --git a/linux.d/debian b/linux.d/debian
index 796f2ab100..1c299cba31 100644
--- a/linux.d/debian
+++ b/linux.d/debian
@@ -1,4 +1,4 @@
-FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3)
+FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3 || echo '')
REQUIRED_DEV_PACKAGES=(
autoconf
diff --git a/linux.d/fedora b/linux.d/fedora
index 3a34072891..47086053ba 100644
--- a/linux.d/fedora
+++ b/linux.d/fedora
@@ -16,6 +16,7 @@ REQUIRED_DEV_PACKAGES=(
gstreamermm-devel
gtk3-devel
libmspack-devel
+ libquadmath-devel
libsecret-devel
libtool
m4
diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot
index 19304a1da4..a6fe7f89da 100644
--- a/localization/i18n/OrcaSlicer.pot
+++ b/localization/i18n/OrcaSlicer.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -4116,7 +4116,7 @@ msgstr ""
msgid "Size:"
msgstr ""
-#, possible-c-format, possible-boost-format
+#, possible-boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7102,8 +7102,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
msgid "Line width"
@@ -10441,10 +10441,10 @@ msgstr ""
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -11365,6 +11365,14 @@ msgstr ""
msgid "Force a retraction when changes layer"
msgstr ""
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr ""
@@ -12275,8 +12283,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -13953,8 +13961,8 @@ msgid ""
msgstr ""
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po
index 7270a9c16c..e3d1f0c721 100644
--- a/localization/i18n/ca/OrcaSlicer_ca.po
+++ b/localization/i18n/ca/OrcaSlicer_ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2024-07-07 18:43+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -4427,7 +4427,7 @@ msgstr "Volum:"
msgid "Size:"
msgstr "Mida:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7740,8 +7740,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Quan graveu timelapse sense capçal d'impressió, es recomana afegir una "
"\"Torre de Purga Timelapse\" \n"
@@ -11658,15 +11658,15 @@ msgstr "Velocitat màxima del ventilador a la capa"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La velocitat del ventilador augmentarà linealment de zero a la capa "
-"\"close_fan_the_first_x_layers\" al màxim a la capa \"full_fan_speed_layer"
-"\". S'ignorarà \"full_fan_speed_layer\" si és inferior a "
-"\"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a "
+"\"close_fan_the_first_x_layers\" al màxim a la capa "
+"\"full_fan_speed_layer\". S'ignorarà \"full_fan_speed_layer\" si és inferior "
+"a \"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a "
"la velocitat màxima permesa a la capa \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
@@ -12822,6 +12822,14 @@ msgstr "Retracció quan canvia de capa"
msgid "Force a retraction when changes layer"
msgstr "Forçar una retracció quan canvia de capa"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Longitud de Retracció"
@@ -13947,8 +13955,8 @@ msgstr "Activar el control de temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15984,8 +15992,8 @@ msgstr ""
"Vols reescriure'l?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Canviaríem el nom dels perfils seleccionats com a \"Proveïdor Tipus "
diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po
index 6ccc54645c..ddcbd9cbf0 100644
--- a/localization/i18n/cs/OrcaSlicer_cs.po
+++ b/localization/i18n/cs/OrcaSlicer_cs.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
-"PO-Revision-Date: 2023-09-30 15:15+0200\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
+"PO-Revision-Date: 2024-11-03 20:59+0100\n"
"Last-Translator: René Mošner \n"
"Language-Team: \n"
"Language: cs_CZ\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n"
-"X-Generator: Poedit 3.3.2\n"
+"X-Generator: Poedit 3.5\n"
msgid "Supports Painting"
msgstr "Malování podpěr"
@@ -4342,7 +4342,7 @@ msgstr "Objem:"
msgid "Size:"
msgstr "Velikost:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5999,6 +5999,7 @@ msgstr "Opravte je prosím na kartách parametrů"
msgid "The 3mf has following modified G-codes in filament or printer presets:"
msgstr ""
+"3mf má následující úpravy G-kódu v předvolbách filamentu nebo tiskárny:"
msgid ""
"Please confirm that these modified G-codes are safe to prevent any damage to "
@@ -6015,9 +6016,11 @@ msgid ""
"Please confirm that the G-codes within these presets are safe to prevent any "
"damage to the machine!"
msgstr ""
+"Potvrďte prosím, že G-kód v těchto předvolbách je bezpečný, aby nedošlo k "
+"poškození stroje!"
msgid "Customized Preset"
-msgstr ""
+msgstr "Přizpůsobená Předvolba"
msgid "Name of components inside step file is not UTF8 format!"
msgstr "Názvy součástí v souboru kroku nejsou ve formátu UTF8!"
@@ -7524,8 +7527,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Při nahrávání časosběru bez nástrojové hlavy se doporučuje přidat "
"\"Timelapse Wipe Tower\" \n"
@@ -11203,10 +11206,10 @@ msgstr "Maximální otáčky ventilátoru ve vrstvě"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Otáčky ventilátoru se lineárně zvýší z nuly ve vrstvě "
"\"close_fan_first_layers\" na maximum ve vrstvě \"full_fan_speed_layer\". "
@@ -12281,6 +12284,14 @@ msgstr "Retrakce při změně vrstvy"
msgid "Force a retraction when changes layer"
msgstr "Vynutit retrakci při změně vrstvy"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Vzdálenost retrakce"
@@ -12681,18 +12692,20 @@ msgid "Enabled"
msgstr "Povoleno"
msgid "Skirt type"
-msgstr ""
+msgstr "Typ obrysu"
msgid ""
"Combined - single skirt for all objects, Per object - individual object "
"skirt."
msgstr ""
+"Kombinovaný - jeden obrys pro všechny objekty, Individuální - každý objekt "
+"má vlastní obrys."
msgid "Combined"
-msgstr ""
+msgstr "Kombinovaný "
msgid "Per object"
-msgstr ""
+msgstr "Individuální "
msgid "Skirt loops"
msgstr "Obrysové smyčky"
@@ -13315,8 +13328,8 @@ msgstr "Aktivovat řízení teploty"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15198,8 +15211,8 @@ msgid ""
msgstr ""
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
@@ -16093,8 +16106,8 @@ msgid ""
msgstr ""
"Plochou na podložku\n"
"Věděli jste, že můžete rychle nastavit orientaci modelu tak, aby jedna z "
-"jeho stěn spočívala na tiskovém podloží? Vyberte funkci \"Plochou na podložku"
-"\" nebo stiskněte klávesu F ."
+"jeho stěn spočívala na tiskovém podloží? Vyberte funkci \"Plochou na "
+"podložku\" nebo stiskněte klávesu F ."
#: resources/data/hints.ini: [hint:Object List]
msgid ""
@@ -16491,12 +16504,12 @@ msgstr ""
#~ "Najdete podrobnosti o kalibraci průtoku dynamiky v naší wiki.\n"
#~ "\n"
#~ "Obvykle kalibrace není potřebná. Při spuštění tisku s jednobarevným/"
-#~ "materiálovým filamentem a zaškrtnutou volbou \"kalibrace průtoku dynamiky"
-#~ "\" v menu spuštění tisku, tiskárna bude postupovat podle staré metody a "
-#~ "zkalibruje filament před tiskem. Při spuštění tisku s vícebarevným/"
-#~ "materiálovým filamentem bude tiskárna při každé změně filamentu používat "
-#~ "výchozí kompenzační parametr pro filament, což má většinou dobrý "
-#~ "výsledek.\n"
+#~ "materiálovým filamentem a zaškrtnutou volbou \"kalibrace průtoku "
+#~ "dynamiky\" v menu spuštění tisku, tiskárna bude postupovat podle staré "
+#~ "metody a zkalibruje filament před tiskem. Při spuštění tisku s "
+#~ "vícebarevným/materiálovým filamentem bude tiskárna při každé změně "
+#~ "filamentu používat výchozí kompenzační parametr pro filament, což má "
+#~ "většinou dobrý výsledek.\n"
#~ "\n"
#~ "Všimněte si, že existují některé případy, které mohou způsobit, že "
#~ "výsledek kalibrace nebude spolehlivý: použití texturované podložky pro "
diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po
index 1f2d895498..f51fe858c6 100644
--- a/localization/i18n/de/OrcaSlicer_de.po
+++ b/localization/i18n/de/OrcaSlicer_de.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Heiko Liebscher \n"
"Language-Team: \n"
@@ -4470,7 +4470,7 @@ msgstr "Volumen:"
msgid "Size:"
msgstr "Größe:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5981,7 +5981,7 @@ msgid "Edit current plate name"
msgstr "Bearbeite den Namen der aktuellen Platte"
msgid "Move plate to the front"
-msgstr ""
+msgstr "Bewege die Platte nach vorne"
msgid "Customize current plate"
msgstr "Aktuelle Platte anpassen"
@@ -7417,8 +7417,8 @@ msgstr ""
msgid ""
"Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr ""
-"Zeitraffer wird nicht unterstützt, da die Druckreihenfolge auf \"Nach Objekt"
-"\" eingestellt ist."
+"Zeitraffer wird nicht unterstützt, da die Druckreihenfolge auf \"Nach "
+"Objekt\" eingestellt ist."
msgid "Errors"
msgstr "Fehler"
@@ -7812,13 +7812,13 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen "
"\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste "
-"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"->"
-"\"Timelapse Wischturm\" wählen."
+"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"-"
+">\"Timelapse Wischturm\" wählen."
msgid "Line width"
msgstr "Breite der Linie"
@@ -10404,6 +10404,14 @@ msgid ""
"When Detect overhang wall is not enabled, this option is ignored and "
"reversal happens on every even layers regardless."
msgstr ""
+"Die Anzahl der Millimeter, die der Überhang betragen muss, damit die "
+"Umkehrung als nützlich angesehen wird. Kann ein Prozentsatz der "
+"Umfangsbreite sein.\n"
+"Der Wert 0 aktiviert die Umkehrung auf jeder geraden Schicht unabhängig "
+"davon.\n"
+"Wenn die Erkennung der Überhangswand nicht aktiviert ist, wird diese Option "
+"ignoriert und die Umkehrung erfolgt auf jeder geraden Schicht unabhängig "
+"davon."
msgid "Classic mode"
msgstr "Klassicher Modus"
@@ -11981,7 +11989,7 @@ msgid ""
"increased in a linear fashion over the specified number of layers."
msgstr ""
"Die ersten paar Schichten werden langsamer als normal gedruckt. Die "
-"Geschwindigkeitwird allmählich linear über die angegebene Anzahl von "
+"Geschwindigkeit wird allmählich linear über die angegebene Anzahl von "
"Schichten erhöht."
msgid "Initial layer nozzle temperature"
@@ -11997,13 +12005,13 @@ msgstr "Volle Lüfterdrehzahl ab Schicht"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
-"Die Lüftergeschwindigkeit wird linear von Null bei der Schicht"
-"\"close_fan_the_first_x_layers\" auf das Maximum bei der Schicht "
+"Die Lüftergeschwindigkeit wird linear von Null bei der "
+"Schicht\"close_fan_the_first_x_layers\" auf das Maximum bei der Schicht "
"\"full_fan_speed_layer\" erhöht. \"full_fan_speed_layer\" wird ignoriert, "
"wenn es niedriger ist als \"close_fan_the_first_x_layers\",in diesem Fall "
"läuft der Lüfter bei Schicht \"close_fan_the_first_x_layers\"+ 1 mit maximal "
@@ -13174,6 +13182,17 @@ msgstr "Zurückziehen beim Schichtwechsel"
msgid "Force a retraction when changes layer"
msgstr "Erzwingen eines Rückzugs beim Schichtwechsel"
+msgid "Retract on top layer"
+msgstr "Rückzug auf der obersten Schicht"
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+"Forciert einen Rückzug auf der obersten Schicht. Das Deaktivieren könnte "
+"eine Verstopfung bei sehr langsamen Mustern mit kleinen Bewegungen wie der "
+"Hilbert-Kurve verhindern."
+
msgid "Retraction Length"
msgstr "Rückzugslänge"
@@ -14334,8 +14353,8 @@ msgstr "aktiviere Temperaturkontrolle"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -16418,8 +16437,8 @@ msgstr ""
"Möchten Sie es überschreiben?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer @Drucker, "
@@ -18475,8 +18494,8 @@ msgstr ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
-#~ "Wählen Sie einen AMS-Slot und drücken Sie dann \"Laden\" oder \"Entladen"
-#~ "\", um automatisch Filament zu laden oder zu entladen."
+#~ "Wählen Sie einen AMS-Slot und drücken Sie dann \"Laden\" oder "
+#~ "\"Entladen\", um automatisch Filament zu laden oder zu entladen."
#~ msgid "MC"
#~ msgstr "MC"
@@ -18792,8 +18811,8 @@ msgstr ""
#~ msgstr "Keine dünnen Schichten (EXPERIMENTELL)"
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
#~ "Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer "
diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po
index 9dc797a864..55fb48c8ad 100644
--- a/localization/i18n/en/OrcaSlicer_en.po
+++ b/localization/i18n/en/OrcaSlicer_en.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -4298,7 +4298,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Size:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7494,13 +7494,13 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgid "Line width"
msgstr "Line width"
@@ -11084,10 +11084,10 @@ msgstr "Full fan speed at layer"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -12071,6 +12071,14 @@ msgstr "Retract on layer change"
msgid "Force a retraction when changes layer"
msgstr "This forces a retraction on layer changes."
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Retraction Length"
@@ -13071,8 +13079,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14912,8 +14920,8 @@ msgstr ""
"Do you want to rewrite it?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po
index c161940a35..1538f94cd4 100644
--- a/localization/i18n/es/OrcaSlicer_es.po
+++ b/localization/i18n/es/OrcaSlicer_es.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Carlos Fco. Caruncho Serrano \n"
"Language-Team: \n"
@@ -4463,7 +4463,7 @@ msgstr "Volumen:"
msgid "Size:"
msgstr "Tamaño:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7421,8 +7421,8 @@ msgid ""
"start printing."
msgstr ""
"Hay algunos filamentos desconocidos en los mapeados AMS. Por favor, "
-"compruebe si son los filamentos requeridos. Si lo son, presione \"Confirmar"
-"\" para empezar a imprimir."
+"compruebe si son los filamentos requeridos. Si lo son, presione "
+"\"Confirmar\" para empezar a imprimir."
#, c-format, boost-format
msgid "nozzle in preset: %s %s"
@@ -7784,13 +7784,13 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Cuando se graba un timelapse sin cabezal, se recomienda añadir una \"Torre "
"de Purga de Timelapse\" haciendo clic con el botón derecho del ratón en una "
-"posición vacía de la bandeja de impresión y seleccionando \"Añadir Primitivo"
-"\"->Torre de Purga de Timelapse\"."
+"posición vacía de la bandeja de impresión y seleccionando \"Añadir "
+"Primitivo\"->Torre de Purga de Timelapse\"."
msgid "Line width"
msgstr "Ancho de linea"
@@ -11954,16 +11954,16 @@ msgstr "Velocidad máxima del ventilador en la capa"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La velocidad de ventilador se incrementará linealmente de cero desde la capa "
-"\"close_fan_the_first_x_layers\" al máximo en la capa \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" se ignorará si es menor que "
-"\"close_fan_the_first_x_layers\", en cuyo caso el ventilador funcionará al "
-"máximo permitido en la capa \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" al máximo en la capa "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" se ignorará si es menor "
+"que \"close_fan_the_first_x_layers\", en cuyo caso el ventilador funcionará "
+"al máximo permitido en la capa \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
msgstr "Capa"
@@ -13145,6 +13145,14 @@ msgstr "Retracción al cambiar de capa"
msgid "Force a retraction when changes layer"
msgstr "Forzar una retracción al cambiar de capa"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Longitud de retracción"
@@ -14297,8 +14305,8 @@ msgstr "Activar control de temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15631,12 +15639,12 @@ msgstr ""
"impresión de varios colores/materiales, la impresora utilizará el parámetro "
"de compensación por defecto para el filamento durante cada cambio de "
"filamento que tendrá un buen resultado en la mayoría de los casos.\n"
-"un solo color/material, con la opción \"calibración de la dinámica de flujo"
-"\" marcada en el menú de inicio de impresión, la impresora seguirá el camino "
-"antiguo, calibrar el filamento antes de la impresión; cuando se inicia una "
-"impresión de varios colores/materiales, la impresora utilizará el parámetro "
-"de compensación por defecto para el filamento durante cada cambio de "
-"filamento que tendrá un buen resultado en la mayoría de los casos.\n"
+"un solo color/material, con la opción \"calibración de la dinámica de "
+"flujo\" marcada en el menú de inicio de impresión, la impresora seguirá el "
+"camino antiguo, calibrar el filamento antes de la impresión; cuando se "
+"inicia una impresión de varios colores/materiales, la impresora utilizará el "
+"parámetro de compensación por defecto para el filamento durante cada cambio "
+"de filamento que tendrá un buen resultado en la mayoría de los casos.\n"
"\n"
"Tenga en cuenta que hay algunos casos que pueden hacer que los resultados de "
"la calibración no sean fiables, como una adhesión insuficiente en la bandeja "
@@ -16391,8 +16399,8 @@ msgstr ""
"¿Quieres reescribirlo?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Cambiaremos el nombre de los perfiles a \"Tipo Número de Serie @impresora "
@@ -18166,14 +18174,14 @@ msgstr ""
#~ "Cuando grabamos timelapse sin cabezal de impresión, es recomendable "
#~ "añadir un \"Torre de Purga de Intervalo\" \n"
#~ "presionando con el botón derecho la posición vacía de la bandeja de "
-#~ "construcción y elegir \"Añadir Primitivo\"->\"Intervalo de Torre de Purga"
-#~ "\"."
+#~ "construcción y elegir \"Añadir Primitivo\"->\"Intervalo de Torre de "
+#~ "Purga\"."
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more printers, Please go to printer selection"
#~ msgstr ""
#~ "Cambiaríamos el nombre de los preajustes a \"Número de serie del Vendedor "
diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po
index 4d591858b8..607ce9f42f 100644
--- a/localization/i18n/fr/OrcaSlicer_fr.po
+++ b/localization/i18n/fr/OrcaSlicer_fr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Guislain Cyril, Thomas Lété\n"
@@ -4456,7 +4456,7 @@ msgstr "Le volume:"
msgid "Size:"
msgstr "Taille:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -5964,7 +5964,7 @@ msgid "Edit current plate name"
msgstr "Modifier le nom du plateau actuel"
msgid "Move plate to the front"
-msgstr ""
+msgstr "Déplacer le plateau vers l’avant"
msgid "Customize current plate"
msgstr "Personnaliser le plateau actuel"
@@ -7828,8 +7828,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé "
"d’ajouter une \"Tour d’essuyage timelapse\".\n"
@@ -7996,9 +7996,9 @@ msgid ""
"Bed temperature when cool plate is installed. Value 0 means the filament "
"does not support to print on the Cool Plate"
msgstr ""
-"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate"
-"\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être "
-"imprimé sur le plateau froid."
+"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool "
+"plate\") est installé. Une valeur à 0 signifie que ce filament ne peut pas "
+"être imprimé sur le plateau froid."
msgid "Textured Cool plate"
msgstr "Plaque Cool plate texturée"
@@ -10454,6 +10454,11 @@ msgid ""
"When Detect overhang wall is not enabled, this option is ignored and "
"reversal happens on every even layers regardless."
msgstr ""
+"Nombre de mm de dépassement nécessaire pour que l’inversion soit considérée "
+"comme utile. Il peut s’agir d’un pourcentage de la largeur du périmètre.\n"
+"La valeur 0 active l’inversion toutes les couches paires.\n"
+"Lorsque la paroi en surplomb n’est pas activée, cette option est ignorée et "
+"l’inversion se fait sur toutes les couches paires."
msgid "Classic mode"
msgstr "Classique"
@@ -12064,10 +12069,10 @@ msgstr "Ventilateur à pleine vitesse à la couche"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La vitesse du ventilateur augmentera de manière linéaire à partir de zéro à "
"la couche \"close_fan_the_first_x_layers\" jusqu’au maximum à la couche "
@@ -13269,6 +13274,14 @@ msgstr "Rétracter lors de changement de couche"
msgid "Force a retraction when changes layer"
msgstr "Cela force une rétraction sur les changements de couche."
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Longueur de Rétraction"
@@ -14005,8 +14018,8 @@ msgid ""
"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to "
"close all holes in the model."
msgstr ""
-"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez « "
-"Fermer les trous » pour fermer tous les trous du modèle."
+"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez "
+"« Fermer les trous » pour fermer tous les trous du modèle."
msgid "Regular"
msgstr "Standard"
@@ -14432,8 +14445,8 @@ msgstr "Activer le contrôle de la température"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14876,8 +14889,8 @@ msgid ""
"Wipe tower is only compatible with relative mode. It is recommended on most "
"printers. Default is checked"
msgstr ""
-"L’extrusion relative est recommandée lors de l’utilisation de l’option « "
-"label_objects ». Certains extrudeurs fonctionnent mieux avec cette option "
+"L’extrusion relative est recommandée lors de l’utilisation de l’option "
+"« label_objects ». Certains extrudeurs fonctionnent mieux avec cette option "
"non verrouillée (mode d’extrusion absolu). La tour d’essuyage n’est "
"compatible qu’avec le mode relatif. Il est recommandé sur la plupart des "
"imprimantes. L’option par défaut est cochée"
@@ -16537,8 +16550,8 @@ msgstr ""
"Voulez-vous le réécrire ?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Nous renommerions les préréglages en « Vendor Type Serial @printer you "
@@ -18112,8 +18125,8 @@ msgstr ""
#~ "modèle. Réglez le « seuil d’une paroi » dans les paramètres avancés ci-"
#~ "dessous pour ajuster la sensibilité de ce qui est considéré comme une "
#~ "surface supérieure. Le « seuil d’une paroi » n’est visible que si ce "
-#~ "paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option « "
-#~ "surfaces supérieures à une paroi » est activée."
+#~ "paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option "
+#~ "« surfaces supérieures à une paroi » est activée."
#, c-format, boost-format
#~ msgid ""
@@ -19000,8 +19013,8 @@ msgstr ""
#~ "thickness (top+bottom solid layers)"
#~ msgstr ""
#~ "Ajoutez du remplissage solide à proximité des surfaces inclinées pour "
-#~ "garantir l'épaisseur verticale de la coque (couches solides supérieure"
-#~ "+inférieure)."
+#~ "garantir l'épaisseur verticale de la coque (couches solides "
+#~ "supérieure+inférieure)."
#~ msgid "Further reduce solid infill on walls (beta)"
#~ msgstr "Réduire davantage le remplissage solide des parois (expérimental)"
diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po
index 9d84e786d7..5c4e404921 100644
--- a/localization/i18n/hu/OrcaSlicer_hu.po
+++ b/localization/i18n/hu/OrcaSlicer_hu.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -4339,7 +4339,7 @@ msgstr "Térfogat:"
msgid "Size:"
msgstr "Méret:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7565,8 +7565,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Ha a nyomtatófej nélküli timelapse engedélyezve van, javasoljuk, hogy "
"helyezz el a tálcán egy „Timelapse törlőtornyot“. Ehhez kattints jobb "
@@ -11208,10 +11208,10 @@ msgstr "Teljes ventilátor fordulatszám ennél a rétegnél"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -12215,6 +12215,14 @@ msgstr "Visszahúzás rétegváltáskor"
msgid "Force a retraction when changes layer"
msgstr "Kényszeríti a visszahúzást minden rétegváltáskor"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Visszahúzás hossza"
@@ -13242,8 +13250,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15099,8 +15107,8 @@ msgstr ""
"Szeretnéd felülírni?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po
index 4bb4e90163..5f83b1bd2b 100644
--- a/localization/i18n/it/OrcaSlicer_it.po
+++ b/localization/i18n/it/OrcaSlicer_it.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -4438,7 +4438,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Dimensione:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7717,8 +7717,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Quando si registra un timelapse senza testa di stampa, si consiglia di "
"aggiungere un \"Timelapse Torre di pulizia\"\n"
@@ -9012,8 +9012,8 @@ msgid ""
msgstr ""
"È stato rilevato un aggiornamento importante che deve essere eseguito prima "
"che la stampa possa continuare. Si desidera aggiornare ora? È possibile "
-"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware"
-"\"."
+"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna "
+"firmware\"."
msgid ""
"The firmware version is abnormal. Repairing and updating are required before "
@@ -11616,16 +11616,17 @@ msgstr "Massima velocità della ventola al layer"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"La velocità della ventola aumenterà linearmente da zero al livello "
-"\"close_fan_the_first_x_layers\" al massimo al livello \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" verrà ignorato se inferiore a "
-"\"close_fan_the_first_x_layers\", nel qual caso la ventola funzionerà alla "
-"massima velocità consentita al livello \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" al massimo al livello "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" verrà ignorato se "
+"inferiore a \"close_fan_the_first_x_layers\", nel qual caso la ventola "
+"funzionerà alla massima velocità consentita al livello "
+"\"close_fan_the_first_x_layers\" + 1."
msgid "layer"
msgstr ""
@@ -12754,6 +12755,14 @@ msgstr "Ritrai al cambio layer"
msgid "Force a retraction when changes layer"
msgstr "Questo forza una retrazione nei cambi layer."
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Lunghezza Retrazione"
@@ -13871,8 +13880,8 @@ msgstr "Attiva il controllo della temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15868,8 +15877,8 @@ msgstr ""
"Vuoi riscriverlo?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Rinomineremo le preimpostazioni come \"Tipo di fornitore seriale @printer "
@@ -17583,12 +17592,13 @@ msgstr ""
#~ "nostro wiki.\n"
#~ "\n"
#~ "Di solito la calibrazione non è necessaria. Quando si avvia una stampa a "
-#~ "singolo colore/materiale, con l'opzione \"calibrazione dinamica del flusso"
-#~ "\" selezionata nel menu di avvio della stampa, la stampante seguirà il "
-#~ "vecchio modo, calibrando il filamento prima della stampa; Quando si avvia "
-#~ "una stampa multicolore/materiale, la stampante utilizzerà il parametro di "
-#~ "compensazione predefinito per il filamento durante ogni cambio di "
-#~ "filamento, che avrà un buon risultato nella maggior parte dei casi.\n"
+#~ "singolo colore/materiale, con l'opzione \"calibrazione dinamica del "
+#~ "flusso\" selezionata nel menu di avvio della stampa, la stampante seguirà "
+#~ "il vecchio modo, calibrando il filamento prima della stampa; Quando si "
+#~ "avvia una stampa multicolore/materiale, la stampante utilizzerà il "
+#~ "parametro di compensazione predefinito per il filamento durante ogni "
+#~ "cambio di filamento, che avrà un buon risultato nella maggior parte dei "
+#~ "casi.\n"
#~ "\n"
#~ "Si prega di notare che ci sono alcuni casi che renderanno il risultato "
#~ "della calibrazione non affidabile: utilizzo di una piastra di texture per "
@@ -17978,8 +17988,8 @@ msgstr ""
#~ msgstr "Nessun layer sparso (SPERIMENTALE)"
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
#~ "Rinomineremo le impostazioni predefinite come \"Tipo di fornitore seriale "
diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po
index 3055f24fd0..5a64176778 100644
--- a/localization/i18n/ja/OrcaSlicer_ja.po
+++ b/localization/i18n/ja/OrcaSlicer_ja.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -289,7 +289,7 @@ msgid "Dowel"
msgstr "Dowel"
msgid "Snap"
-msgstr "Snap"
+msgstr "スナップ"
msgid "Prism"
msgstr "プリズム"
@@ -374,7 +374,7 @@ msgid "Change cut mode"
msgstr "カットモード変更"
msgid "Tolerance"
-msgstr "Tolerance"
+msgstr "公差"
msgid "Drag"
msgstr "Drag"
@@ -383,13 +383,13 @@ msgid "Draw cut line"
msgstr ""
msgid "Left click"
-msgstr "Left click"
+msgstr "左クリック"
msgid "Add connector"
msgstr "Add connector"
msgid "Right click"
-msgstr "Right click"
+msgstr "右クリック"
msgid "Remove connector"
msgstr "Remove connector"
@@ -468,13 +468,13 @@ msgid "Reset cutting plane and remove connectors"
msgstr "カット面をリセットし、コネクターを削除"
msgid "Upper part"
-msgstr "Upper part"
+msgstr "上部パーツ"
msgid "Lower part"
-msgstr "Lower part"
+msgstr "下部パーツ"
msgid "Keep"
-msgstr "Keep"
+msgstr "残す"
msgid "Flip"
msgstr "Flip"
@@ -1278,7 +1278,7 @@ msgid "Center of edge"
msgstr "Center of edge"
msgid "Center of circle"
-msgstr "Center of circle"
+msgstr "円の中心"
msgid "ShiftLeft mouse button"
msgstr ""
@@ -1466,7 +1466,8 @@ msgid "Choose one file (3mf):"
msgstr "ファイルを選択 (3mf):"
msgid "Choose one or more files (3mf/step/stl/svg/obj/amf/usd*/abc/ply):"
-msgstr "Choose one or more files (3mf/step/stl/svg/obj/amf/usd*/abc/ply):"
+msgstr ""
+"1つ以上のファイルを選択してください (3mf/step/stl/svg/obj/amf/usd*/abc/ply):"
msgid "Choose one or more files (3mf/step/stl/svg/obj/amf):"
msgstr "ファイルを選択 (3mf/step/stl/svg/obj/amf)"
@@ -1732,10 +1733,10 @@ msgid "Set as individual objects"
msgstr "個別オブジェクトとして設定"
msgid "Fill bed with copies"
-msgstr "Fill bed with copies"
+msgstr "コピーでビルドプレートを埋める"
msgid "Fill the remaining area of bed with copies of the selected object"
-msgstr "Fill the remaining area of bed with copies of the selected object"
+msgstr "選択したオブジェクトのコピーでビルドプレートの残りの領域を埋める"
msgid "Printable"
msgstr "造形可能"
@@ -1744,7 +1745,7 @@ msgid "Fix model"
msgstr "モデルを修復"
msgid "Export as one STL"
-msgstr "Export as one STL"
+msgstr "1つのSTLとしてエクスポート"
msgid "Export as STLs"
msgstr "Export as STLs"
@@ -1916,10 +1917,10 @@ msgid "arrange current plate"
msgstr "現在のプレートをレイアウト"
msgid "Reload All"
-msgstr ""
+msgstr "全て再読み込み"
msgid "reload all from disk"
-msgstr ""
+msgstr "全てディスクから再読み込み"
msgid "Auto Rotate"
msgstr "自動回転"
@@ -2068,7 +2069,7 @@ msgstr ""
"cut information first."
msgid "Delete all connectors"
-msgstr "Delete all connectors"
+msgstr "全てのコネクターを削除"
msgid "Deleting the last solid part is not allowed."
msgstr "最後のソリッドパーツは削除できません。"
@@ -2205,13 +2206,13 @@ msgid "Mouse ear"
msgstr ""
msgid "Outer brim only"
-msgstr "Outer brim only"
+msgstr "外側ブリムのみ"
msgid "Inner brim only"
-msgstr "Inner brim only"
+msgstr "内側ブリムのみ"
msgid "Outer and inner brim"
-msgstr "Outer and inner brim"
+msgstr "外側および内側ブリム"
msgid "No-brim"
msgstr "ブリム無し"
@@ -2286,7 +2287,7 @@ msgid "Add Pause"
msgstr "一時停止を追加"
msgid "Insert a pause command at the beginning of this layer."
-msgstr "Insert a pause command at the beginning of this layer."
+msgstr "このレイヤーの先頭にポーズコマンドを挿入"
msgid "Add Custom G-code"
msgstr "カスタムG-codeを追加"
@@ -2298,13 +2299,13 @@ msgid "Add Custom Template"
msgstr "カスタムテンプレートを追加"
msgid "Insert template custom G-code at the beginning of this layer."
-msgstr "Insert template custom G-code at the beginning of this layer."
+msgstr "このレイヤーの先頭にテンプレートカスタムGコードを挿入"
msgid "Filament "
msgstr "フィラメント"
msgid "Change filament at the beginning of this layer."
-msgstr "Change filament at the beginning of this layer."
+msgstr "このレイヤーの先頭でフィラメントを交換"
msgid "Delete Pause"
msgstr "Delete Pause"
@@ -2337,19 +2338,21 @@ msgid "code"
msgstr "code"
msgid "Failed to connect to cloud service"
-msgstr "Failed to connect to cloud service"
+msgstr "クラウドサービスへの接続に失敗しました。"
msgid "Please click on the hyperlink above to view the cloud service status"
-msgstr "Please click on the hyperlink above to view the cloud service status"
+msgstr ""
+"クラウドサービスのステータスを確認するには、上記のハイパーリンクをクリックし"
+"てください。"
msgid "Failed to connect to the printer"
msgstr "プリンターへ接続できませんでした"
msgid "Connection to printer failed"
-msgstr "Connection to printer failed"
+msgstr "プリンターへの接続に失敗しました。"
msgid "Please check the network connection of the printer and Orca."
-msgstr "Please check the network connection of the printer and Orca."
+msgstr "プリンターとOrcaのネットワーク接続を確認してください。"
msgid "Connecting..."
msgstr "接続中…"
@@ -4280,7 +4283,7 @@ msgstr "ボリューム"
msgid "Size:"
msgstr "サイズ:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7435,8 +7438,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"ヘッド無しのタイムラプスビデオを録画する時に、「タイムラプスプライムタワー」"
"を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム"
@@ -8614,10 +8617,12 @@ msgid "Where to find your printer's IP and Access Code?"
msgstr "どこでプリンターのIPアドレスとアクセスコードを確認できますか?"
msgid "Step 3: Ping the IP address to check for packet loss and latency."
-msgstr "Step 3: Ping the IP address to check for packet loss and latency."
+msgstr ""
+"ステップ3: パケットロスとレイテンシを確認するために、IPアドレスに対してpingを"
+"実行します。"
msgid "Test"
-msgstr "Test"
+msgstr "テスト"
msgid "IP and Access Code Verified! You may close the window"
msgstr "IP and Access Code Verified! You may close the window"
@@ -8887,13 +8892,13 @@ msgid "file open failed"
msgstr "file open failed"
msgid "file create failed"
-msgstr "file create failed"
+msgstr "ファイルの作成に失敗しました"
msgid "file write failed"
-msgstr "file write failed"
+msgstr "ファイルの書き込みに失敗しました"
msgid "file read failed"
-msgstr "file read failed"
+msgstr "ファイルの読み込みに失敗しました"
msgid "file close failed"
msgstr "file close failed"
@@ -9028,13 +9033,15 @@ msgid ""
"Ooze prevention is only supported with the wipe tower when "
"'single_extruder_multi_material' is off."
msgstr ""
+"オーズ防止は、'single_extruder_multi_material'がオフの場合にのみ、 ワイプタ"
+"ワーと併用してサポートされます。"
msgid ""
"The prime tower is currently only supported for the Marlin, RepRap/Sprinter, "
"RepRapFirmware and Repetier G-code flavors."
msgstr ""
-"The prime tower is currently only supported for the Marlin, RepRap/Sprinter, "
-"RepRapFirmware and Repetier G-code flavors."
+"プライムタワーは現在、Marlin、RepRap/Sprinter、RepRapFirmware、およびRepetier"
+"のGコード形式のみサポートされています。"
msgid "The prime tower is not supported in \"By object\" print."
msgstr "オブジェクト順で造形する場合、プライムタワーを利用できません"
@@ -10969,10 +10976,10 @@ msgstr "最大回転速度の積層"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -11943,6 +11950,14 @@ msgstr "積層変更時のリトラクション"
msgid "Force a retraction when changes layer"
msgstr "この設定により、積層を変更時にリトラクションを実行します。"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "リトラクション長さ"
@@ -12943,8 +12958,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14799,8 +14814,8 @@ msgstr ""
"Do you want to rewrite it?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
@@ -15371,10 +15386,10 @@ msgid "Could not connect to Prusa Connect"
msgstr "Prusaコネクトに接続できませんでした"
msgid "Connection to Repetier works correctly."
-msgstr "Connection to Repetier is working correctly."
+msgstr "Repetierへの接続は正常に動作しています"
msgid "Could not connect to Repetier"
-msgstr "Could not connect to Repetier"
+msgstr "Repetierに接続できませんでした。"
msgid "Note: Repetier version at least 0.90.0 is required."
msgstr "Note: Repetier version 0.90.0 or higher is required."
@@ -15437,8 +15452,9 @@ msgid ""
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
-"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
-"height. This results in slightly visible layer lines but shorter print time."
+"0.2 mmノズルのデフォルトプロファイルと比較すると、レイヤー高さが大きくなって"
+"います。そのため、レイヤーラインがわずかに見えますが、印刷時間は短縮されま"
+"す。"
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po
index a208da285b..466e969b02 100644
--- a/localization/i18n/ko/OrcaSlicer_ko.po
+++ b/localization/i18n/ko/OrcaSlicer_ko.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
-"PO-Revision-Date: 2024-10-26 10:01+0900\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
+"PO-Revision-Date: 2024-11-06 21:10+0900\n"
"Last-Translator: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github."
"com>\n"
"Language-Team: crwusiz@gmail.com\n"
@@ -108,7 +108,7 @@ msgid "Support Generated"
msgstr "지지대 생성됨"
msgid "Gizmo-Place on Face"
-msgstr "Gizmo-면에 배치"
+msgstr "기즈모-면에 배치"
msgid "Lay on face"
msgstr "바닥면 선택"
@@ -189,13 +189,13 @@ msgid "Move"
msgstr "이동"
msgid "Gizmo-Move"
-msgstr "Gizmo-이동"
+msgstr "기즈모-이동"
msgid "Rotate"
msgstr "회전"
msgid "Gizmo-Rotate"
-msgstr "Gizmo-회전"
+msgstr "기즈모-회전"
msgid "Optimize orientation"
msgstr "방향 최적화"
@@ -207,7 +207,7 @@ msgid "Scale"
msgstr "배율"
msgid "Gizmo-Scale"
-msgstr "Gizmo-배율"
+msgstr "기즈모-배율"
msgid "Error: Please close all toolbar menus first"
msgstr "오류: 먼저 모든 도구 모음 메뉴를 닫으십시오."
@@ -280,7 +280,7 @@ msgid "Planar"
msgstr "평면"
msgid "Dovetail"
-msgstr "도브테이"
+msgstr "도브테일"
msgid "Auto"
msgstr "자동"
@@ -292,7 +292,7 @@ msgid "Plug"
msgstr "플러그"
msgid "Dowel"
-msgstr "맞춤핀"
+msgstr "도웰"
msgid "Snap"
msgstr "스냅"
@@ -301,7 +301,7 @@ msgid "Prism"
msgstr "프리즘"
msgid "Frustum"
-msgstr "원뿔"
+msgstr "원뿔대"
msgid "Square"
msgstr "사각형"
@@ -542,7 +542,7 @@ msgid "Delete connector"
msgstr "커넥터 삭제"
msgid "Mesh name"
-msgstr "메쉬 이름"
+msgstr "메시 이름"
msgid "Detail level"
msgstr "세부 레벨"
@@ -1112,7 +1112,7 @@ msgid "Linear gradient"
msgstr "선형 그래디언트"
msgid "Radial gradient"
-msgstr "방사형 그래디언트"
+msgstr "방사형 그라데이션"
msgid "Open filled path"
msgstr "채워진 경로 열기"
@@ -1840,10 +1840,10 @@ msgid "Assemble the selected objects to an object with single part"
msgstr "선택한 개체를 단일 부품이 있는 개체로 조립"
msgid "Mesh boolean"
-msgstr "메쉬 부울"
+msgstr "메시 합집합/차집합/교집합"
msgid "Mesh boolean operations including union and subtraction"
-msgstr "합집합과 차집합을 포함한 메쉬 부울 연산"
+msgstr "합집합과 차집합을 포함한 메시 부울 연산"
msgid "Along X axis"
msgstr "X축"
@@ -3054,7 +3054,7 @@ msgstr ""
"로 이동합니다"
msgid "Air Printing Detection"
-msgstr "에어 프린팅 감지"
+msgstr "허공 출력 감지"
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
@@ -3136,7 +3136,7 @@ msgid "Stack overflow"
msgstr "스택 오버플로"
msgid "Running post-processing scripts"
-msgstr "사후 처리 스크립트 실행중"
+msgstr "후처리 스크립트 실행중"
msgid "Successfully executed post-processing script"
msgstr "성공적으로 실행된 후처리 스크립트"
@@ -3284,13 +3284,13 @@ msgid "syncing"
msgstr "동기화"
msgid "Printing Finish"
-msgstr "인쇄 완료"
+msgstr "출력 완료"
msgid "Printing Failed"
-msgstr "인쇄 실패"
+msgstr "출력 실패"
msgid "Printing Pause"
-msgstr "인쇄 일시중지"
+msgstr "출력 일시중지"
msgid "Prepare"
msgstr "준비 하기"
@@ -3314,10 +3314,10 @@ msgid "Sending Failed"
msgstr "전송 실패"
msgid "Print Success"
-msgstr "인쇄 성공"
+msgstr "출력 성공"
msgid "Print Failed"
-msgstr "인쇄 실패"
+msgstr "출력 실패"
msgid "Removed"
msgstr "삭제됨"
@@ -3356,7 +3356,7 @@ msgid "Abnormal print file data. Please slice again"
msgstr "비정상적인 출력 파일 데이터입니다. 다시 슬라이스하세요"
msgid "There is no device available to send printing."
-msgstr "인쇄를 전송할 수 있는 장치가 없습니다."
+msgstr "출력을 전송할 수 있는 장치가 없습니다."
msgid "The number of printers in use simultaneously cannot be equal to 0."
msgstr "동시에 사용 중인 프린터의 수는 0과 같을 수 없습니다."
@@ -3374,7 +3374,7 @@ msgid "Ams Status"
msgstr "AMS 상태"
msgid "Printing Options"
-msgstr "인쇄 옵션"
+msgstr "출력 옵션"
msgid "Bed Leveling"
msgstr "베드 레벨링"
@@ -4309,7 +4309,7 @@ msgstr "용량:"
msgid "Size:"
msgstr "크기:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -4386,7 +4386,7 @@ msgid "Go Live"
msgstr "실시간"
msgid "Liveview Retry"
-msgstr "라이브뷰 재시도"
+msgstr "실시간 화면보기 재시도"
msgid "Resolution"
msgstr "해상도"
@@ -6282,8 +6282,8 @@ msgid ""
"Unable to perform boolean operation on model meshes. Only positive parts "
"will be kept. You may fix the meshes and try again."
msgstr ""
-"모델 메쉬에 대해 부울 연산을 수행할 수 없습니다. 긍정적인 부분만 유지됩니다. "
-"메쉬를 수정하고 재시도해 볼 수 있습니다."
+"모델 메시에 대해 부울 연산을 수행할 수 없습니다. 긍정적인 부분만 유지됩니다. "
+"메시를 수정하고 재시도해 볼 수 있습니다."
#, boost-format
msgid "Reason: part \"%1%\" is empty."
@@ -6305,7 +6305,7 @@ msgid ""
"Unable to perform boolean operation on model meshes. Only positive parts "
"will be exported."
msgstr ""
-"모델 메쉬에 부울 연산을 수행할 수 없습니다. 오직 양수 부품만 내보내집니다."
+"모델 메시에 부울 연산을 수행할 수 없습니다. 오직 양수 부품만 내보내집니다."
msgid ""
"Are you sure you want to store original SVGs with their local paths into the "
@@ -6562,10 +6562,10 @@ msgid "If enabled, reverses the direction of zoom with mouse wheel."
msgstr "활성화되면 마우스 휠을 사용하여 확대/축소 방향을 반대로 바꿉니다."
msgid "Show splash screen"
-msgstr "스플래시 화면 표시"
+msgstr "시작 화면 표시"
msgid "Show the splash screen during startup."
-msgstr "시작하는 동안 스플래시 화면을 표시합니다."
+msgstr "시작 화면을 표시합니다."
msgid "Show \"Tip of the day\" notification after start"
msgstr "시작 후 \"오늘의 팁\" 알림 표시"
@@ -6782,7 +6782,7 @@ msgid "debug save button"
msgstr "디버그 저장 버튼"
msgid "save debug settings"
-msgstr "디버그 세팅 저장"
+msgstr "디버그 설정 저장"
msgid "DEBUG settings have saved successfully!"
msgstr "디버그 설정이 성공적으로 저장되었습니다!"
@@ -6830,7 +6830,7 @@ msgid "Create printer"
msgstr "프린터 생성"
msgid "The selected preset is null!"
-msgstr "선택한 사전 설정의 값이 존재하지 않습니다!(null)"
+msgstr "선택한 사전 설정의 값이 존재하지 않습니다!"
msgid "End"
msgstr "끝"
@@ -7249,7 +7249,7 @@ msgid "Get ticket from device timeout"
msgstr "기기에서 티켓 가져오는데 시간 초과"
msgid "Get ticket from server timeout"
-msgstr "서버에서 티켓 가져오는데 시간 초과"
+msgstr "서버에서 티켓 가져오기 시간 초과"
msgid "Failed to post ticket to server"
msgstr "서버에 티켓게시 실패"
@@ -7295,7 +7295,7 @@ msgid "Check the reason"
msgstr "이유 확인"
msgid "Read and accept"
-msgstr "읽고 수락"
+msgstr "읽고 동의하기"
msgid "Terms and Conditions"
msgstr "이용약관"
@@ -7496,13 +7496,13 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
-"툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 닦기 타워\"를 추가하는 것이 좋"
-"습니다\n"
+"툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 프라임 타워\"를 추가하는 것이 "
+"좋습니다\n"
"빌드 플레이트의 빈 위치를 마우스 오른쪽 버튼으로 클릭하고 \"기본 모델 추가\"-"
-"> \"타임랩스 닦기 타워\"를 선택합니다."
+"> \"타임랩스 프라임 타워\"를 선택합니다."
msgid "Line width"
msgstr "선 너비"
@@ -7594,7 +7594,7 @@ msgid "G-code output"
msgstr "G코드 출력"
msgid "Post-processing Scripts"
-msgstr "사후 처리 스크립트"
+msgstr "후처리 스크립트"
msgid "Notes"
msgstr "메모"
@@ -7667,7 +7667,7 @@ msgid ""
"does not support to print on the Textured Cool Plate"
msgstr ""
"쿨 플레이트가 설치되었을 때의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 "
-"플레이트에서 인쇄를 지원하지 않음을 의미합니다"
+"플레이트에서 출력를 지원하지 않음을 의미합니다"
msgid "Engineering plate"
msgstr "엔지니어링 플레이트"
@@ -7753,7 +7753,7 @@ msgid "Filament end G-code"
msgstr "필라멘트 종료 G코드"
msgid "Wipe tower parameters"
-msgstr "닦기 타워 매개변수"
+msgstr "프라임 타워 매개변수"
msgid "Toolchange parameters with single extruder MM printers"
msgstr "다중 재료 프린터의 단일 압출기 툴 체인지 매개변수"
@@ -7785,7 +7785,7 @@ msgid "Extruder Clearance"
msgstr "압출기 회피"
msgid "Adaptive bed mesh"
-msgstr "적응형 베드 메쉬"
+msgstr "적응형 베드 메시"
msgid "Accessory"
msgstr "악세서리"
@@ -7858,7 +7858,7 @@ msgid "Nozzle diameter"
msgstr "노즐 직경"
msgid "Wipe tower"
-msgstr "닦기 타워"
+msgstr "프라임 타워"
msgid "Single extruder multi-material parameters"
msgstr "단일 압출기 다중 재료 매개변수"
@@ -7889,7 +7889,7 @@ msgstr ""
"펌웨어 후퇴를 활성화하기 위해 비활성화하겠습니까?"
msgid "Firmware Retraction"
-msgstr "펌웨어 후퇴"
+msgstr "펌웨어 리트렉션"
msgid "Detached"
msgstr "분리됨"
@@ -8869,7 +8869,7 @@ msgid ""
"Maybe parts of the object at these height are too thin, or the object has "
"faulty mesh"
msgstr ""
-"이 높이에 있는 개체의 일부가 너무 얇거나 개체에 결함이 있는 메쉬가 있을 수 있"
+"이 높이에 있는 개체의 일부가 너무 얇거나 개체에 결함이 있는 메시가 있을 수 있"
"습니다"
msgid "No object can be printed. Maybe too small"
@@ -8878,7 +8878,7 @@ msgstr "개체를 출력할 수 없습니다. 너무 작을 수 있습니다"
msgid ""
"Your print is very close to the priming regions. Make sure there is no "
"collision."
-msgstr "인쇄물이 프라이밍 영역에 매우 가깝습니다. 충돌이 없는지 확인합니다."
+msgstr "출력물이 프라이밍 영역에 매우 가깝습니다. 충돌이 없는지 확인합니다."
msgid ""
"Failed to generate gcode for invalid custom G-code.\n"
@@ -9137,14 +9137,14 @@ msgid ""
"The Wipe Tower is currently only supported with the relative extruder "
"addressing (use_relative_e_distances=1)."
msgstr ""
-"닦기 타워는 현재 관련 압출기에서만 지원됩니다.주소 지정"
+"프라임 타워는 현재 관련 압출기에서만 지원됩니다.주소 지정"
"(use_relative_e_distances=1)."
msgid ""
"Ooze prevention is only supported with the wipe tower when "
"'single_extruder_multi_material' is off."
msgstr ""
-"오수 방지는 'single_extruder_multi_material'이 꺼져 있을 때만 와이프 타워에"
+"유출 방지는 'single_extruder_multi_material'이 꺼져 있을 때만 와이프 타워에"
"서 지원됩니다."
msgid ""
@@ -9504,7 +9504,7 @@ msgid ""
"filament does not support to print on the Textured Cool Plate"
msgstr ""
"초기 레이어를 제외한 레이어의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 "
-"플레이트에서 인쇄를 지원하지 않음을 의미합니다"
+"플레이트에서 출력를 지원하지 않음을 의미합니다"
msgid ""
"Bed temperature for layers except the initial one. Value 0 means the "
@@ -9544,7 +9544,7 @@ msgid ""
"Bed temperature of the initial layer. Value 0 means the filament does not "
"support to print on the Textured Cool Plate"
msgstr ""
-"초기 레이어의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 플레이트에 인쇄"
+"초기 레이어의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 플레이트에 출력"
"할 수 없음을 의미합니다"
msgid ""
@@ -9915,7 +9915,7 @@ msgstr ""
"데 도움이 될 수 있습니다.\n"
"\n"
"이 설정이 가장 효과적이려면 모든 내부 벽이 돌출 정도에 관계없이 균일한 레이어"
-"에서 교대로 인쇄되도록 역방향 임계값을 0으로 설정하는 것이 좋습니다."
+"에서 교대로 출력되도록 역방향 임계값을 0으로 설정하는 것이 좋습니다."
msgid "Bridge counterbore holes"
msgstr "브릿지 카운터보어 구멍"
@@ -9934,7 +9934,7 @@ msgstr ""
"3. 희생 레이어: 전체 희생 브릿지 레이어가 생성됩니다."
msgid "Partially bridged"
-msgstr "부분적으로 브릿지"
+msgstr "부분적 브릿지"
msgid "Sacrificial layer"
msgstr "희생층"
@@ -9953,6 +9953,11 @@ msgid ""
"When Detect overhang wall is not enabled, this option is ignored and "
"reversal happens on every even layers regardless."
msgstr ""
+"반전이 유용한 것으로 간주되려면 오버행이 몇 mm가 되어야 합니다. 둘레 폭을 % o"
+"으로 설정할 수 있습니다.\n"
+"값이 0이면 모든 짝수 레이어에 관계없이 반전이 활성화됩니다.\n"
+"돌출 벽 감지가 활성화되지 않은 경우 이 옵션은 무시되고 모든 짝수 레이어에서 "
+"반전이 수행됩니다."
msgid "Classic mode"
msgstr "클래식 모드"
@@ -9967,7 +9972,7 @@ msgid "Enable this option to slow printing down for different overhang degree"
msgstr "돌출부 정도에 따라 출력 속도를 낮추려면 이 옵션을 활성화합니다"
msgid "Slow down for curled perimeters"
-msgstr "꺾여 있는 둘레에서 감속"
+msgstr "구부러진 둘레에서 감속"
#, no-c-format, no-boost-format
msgid ""
@@ -9989,13 +9994,13 @@ msgid ""
"overhanging, with no wall supporting them from underneath, the 100% overhang "
"speed will be applied."
msgstr ""
-"주변이 위쪽으로 말릴 수 있는 영역에서 인쇄 속도를 늦추려면 이 옵션을 활성화합"
-"니다. 예를 들어 벤치 선체 전면과 같이 날카로운 모서리에 돌출부를 인쇄할 때 추"
+"주변이 위쪽으로 말릴 수 있는 영역에서 출력 속도를 늦추려면 이 옵션을 활성화합"
+"니다. 예를 들어 벤치 선체 전면과 같이 날카로운 모서리에 돌출부를 출력할 때 추"
"가 속도 저하가 적용되어 여러 레이어에 걸쳐 합성되는 말림을 줄입니다.\n"
"\n"
-" 프린터 냉각 성능이 충분히 강력하거나 인쇄 속도가 느려 주변 말림이 발생하지 "
-"않는 한 일반적으로 이 옵션을 켜는 것이 좋습니다. 높은 외부 주변 속도로 인쇄하"
-"는 경우 이 매개변수는 인쇄 속도의 큰 차이로 인해 속도가 느려질 때 약간의 아티"
+" 프린터 냉각 성능이 충분히 강력하거나 출력 속도가 느려 주변 말림이 발생하지 "
+"않는 한 일반적으로 이 옵션을 켜는 것이 좋습니다. 높은 외부 주변 속도로 출력하"
+"는 경우 이 매개변수는 출력 속도의 큰 차이로 인해 속도가 느려질 때 약간의 아티"
"팩트가 발생할 수 있습니다. 아티팩트가 발견되면 압력 진행이 올바르게 조정되었"
"는지 확인하십시오.\n"
"\n"
@@ -10020,7 +10025,7 @@ msgstr ""
"외부에서 볼 수 있는 브릿지 돌출 속도입니다. \n"
"\n"
"또한, 구부러진 둘레에 대한 속도 저하가 비활성화되거나 클래식 오버행 모드가 활"
-"성화된 경우 브릿지의 일부이든 오버행이든 상관없이 오버행 벽의 인쇄 속도는 "
+"성화된 경우 브릿지의 일부이든 오버행이든 상관없이 오버행 벽의 출력 속도는 "
"13% 미만으로 지원됩니다."
msgid "mm/s"
@@ -10259,14 +10264,14 @@ msgstr ""
"이는 데 도움이 될 수 있습니다.\n"
"\n"
"기본적으로 작은 내부 브릿지는 필터링되고 내부 솔리드 채우기는 희박한 채우기 "
-"위에 직접 인쇄됩니다. 이는 대부분의 경우에 잘 작동하여 상단 표면 품질을 크게 "
-"저하시키지 않고 인쇄 속도를 높입니다. \n"
+"위에 직접 출력됩니다. 이는 대부분의 경우에 잘 작동하여 상단 표면 품질을 크게 "
+"저하시키지 않고 출력 속도를 높입니다. \n"
"\n"
"그러나 특히 너무 낮은 희박 채우기 밀도가 사용되는 심하게 기울어지거나 곡선 모"
"델에서는 지지되지 않는 고체 채우기가 말려 베개 현상이 발생할 수 있습니다.\n"
"\n"
"이 옵션을 비활성화하면 약간 지원되지 않는 내부 솔리드 채우기 위에 내부 브릿"
-"지 레이어가 인쇄됩니다. 아래 옵션은 필터링 양, 즉 생성된 내부 브릿지 양을 제"
+"지 레이어가 출력됩니다. 아래 옵션은 필터링 양, 즉 생성된 내부 브릿지 양을 제"
"어합니다.\n"
"\n"
"필터 - 이 옵션을 활성화합니다. 이는 기본 동작이며 대부분의 경우 잘 작동합니"
@@ -10492,11 +10497,11 @@ msgid ""
"external surface finish. It can also cause the infill to shine through the "
"external surfaces of the part."
msgstr ""
-"벽/채우기 순서. 확인란을 선택 취소하면 벽이 먼저 인쇄되며 이는 대부분의 경우 "
+"벽/채우기 순서. 확인란을 선택 취소하면 벽이 먼저 출력되며 이는 대부분의 경우 "
"가장 잘 작동합니다.\n"
"\n"
-"충전재를 먼저 인쇄하면 벽에 접착할 인접 충전재가 있으므로 돌출부가 심한 경우 "
-"도움이 될 수 있습니다. 그러나 충전재는 인쇄된 벽이 부착된 부분을 약간 밀어내"
+"충전재를 먼저 출력하면 벽에 접착할 인접 충전재가 있으므로 돌출부가 심한 경우 "
+"도움이 될 수 있습니다. 그러나 충전재는 출력된 벽이 부착된 부분을 약간 밀어내"
"어 외부 표면 마감이 더 나빠집니다. 또한 충전재가 부품의 외부 표면을 통해 빛"
"날 수도 있습니다."
@@ -10556,7 +10561,7 @@ msgid "The height of nozzle tip."
msgstr "노즐 팁의 높이."
msgid "Bed mesh min"
-msgstr "배드 메쉬 최소"
+msgstr "배드 메시 최소"
msgid ""
"This option sets the min point for the allowed bed mesh area. Due to the "
@@ -10568,9 +10573,9 @@ msgid ""
"your printer manufacturer. The default setting is (-99999, -99999), which "
"means there are no limits, thus allowing probing across the entire bed."
msgstr ""
-"이 옵션은 허용되는 배드 메쉬 영역의 최소 지점을 설정합니다. 프로브의 XY 옵셋"
+"이 옵션은 허용되는 배드 메시 영역의 최소 지점을 설정합니다. 프로브의 XY 옵셋"
"으로 인해 대부분의 프린터는 전체 베드를 프로브할 수 없습니다. 프로브 포인트"
-"가 베드 영역 밖으로 나가지 않도록 하려면 베드 메쉬의 최소 및 최대 지점을 적절"
+"가 베드 영역 밖으로 나가지 않도록 하려면 베드 메시의 최소 및 최대 지점을 적절"
"하게 설정해야 합니다. OrcaSlicer는 adaptive_bed_mesh_min/"
"adaptive_bed_mesh_max 값이 이러한 최소/최대 포인트를 초과하지 않도록 보장합니"
"다. 이 정보는 일반적으로 프린터 제조업체로부터 얻을 수 있습니다. 기본 설정은 "
@@ -10578,7 +10583,7 @@ msgstr ""
"을 의미합니다."
msgid "Bed mesh max"
-msgstr "배드 메쉬 최대"
+msgstr "배드 메시 최대"
msgid ""
"This option sets the max point for the allowed bed mesh area. Due to the "
@@ -10590,9 +10595,9 @@ msgid ""
"your printer manufacturer. The default setting is (99999, 99999), which "
"means there are no limits, thus allowing probing across the entire bed."
msgstr ""
-"이 옵션은 허용되는 침대 메쉬 영역의 최대 지점을 설정합니다. 프로브의 XY 옵셋"
+"이 옵션은 허용되는 침대 메시 영역의 최대 지점을 설정합니다. 프로브의 XY 옵셋"
"으로 인해 대부분의 프린터는 전체 베드를 프로브할 수 없습니다. 프로브 포인트"
-"가 베드 영역 밖으로 나가지 않도록 하려면 베드 메쉬의 최소 및 최대 지점을 적절"
+"가 베드 영역 밖으로 나가지 않도록 하려면 베드 메시의 최소 및 최대 지점을 적절"
"하게 설정해야 합니다. OrcaSlicer는 adaptive_bed_mesh_min/"
"adaptive_bed_mesh_max 값이 이러한 최소/최대 포인트를 초과하지 않도록 보장합니"
"다. 이 정보는 일반적으로 프린터 제조업체로부터 얻을 수 있습니다. 기본 설정은 "
@@ -10610,7 +10615,7 @@ msgstr ""
"며 X와 Y 모두에 대한 기본값은 50mm입니다."
msgid "Mesh margin"
-msgstr "메쉬 공간"
+msgstr "메시 공간"
msgid ""
"This option determines the additional distance by which the adaptive bed "
@@ -10696,16 +10701,16 @@ msgid ""
"and for when tool changing.\n"
"\n"
msgstr ""
-"인쇄 속도가 증가하고(노즐을 통한 체적 흐름이 증가함) 가속도가 증가함에 따라 "
+"출력 속도가 증가하고(노즐을 통한 체적 흐름이 증가함) 가속도가 증가함에 따라 "
"일반적으로 유효 PA 값이 감소하는 것으로 관찰되었습니다. 이는 단일 PA 값이 모"
"든 기능에 대해 항상 100% 최적인 것은 아니며 일반적으로 유속과 가속도가 낮은 "
"기능에 너무 많은 돌출을 일으키지 않고 더 빠른 기능에 간격을 유발하지 않는 절"
"충 값이 사용된다는 것을 의미합니다.\n"
"\n"
-"이 기능은 인쇄 중인 체적 흐름 속도와 가속도에 따라 프린터 압출 시스템의 반응"
+"이 기능은 출력 중인 체적 흐름 속도와 가속도에 따라 프린터 압출 시스템의 반응"
"을 모델링하여 이러한 제한 사항을 해결하는 것을 목표로 합니다. 내부적으로는 주"
"어진 체적 흐름 속도 및 가속도에 대해 필요한 압력 전진을 추정할 수 있는 적합 "
-"모델을 생성하며, 이는 현재 인쇄 조건에 따라 프린터로 방출됩니다.\n"
+"모델을 생성하며, 이는 현재 출력 조건에 따라 프린터로 방출됩니다.\n"
"\n"
"활성화되면 위의 압력 전진 값이 무시됩니다. 그러나 대체 수단으로 사용하거나 도"
"구를 변경할 때 위의 합리적인 기본값을 사용하는 것이 좋습니다.\n"
@@ -10752,15 +10757,15 @@ msgstr ""
"\n"
"교정 방법:\n"
"1. 가속도 값당 최소 3개 속도에 대해 압력 전진 테스트를 실행합니다. 최소한 외"
-"부 둘레의 속도, 내부 둘레의 속도 및 프로필의 가장 빠른 기능 인쇄 속도(일반적"
+"부 둘레의 속도, 내부 둘레의 속도 및 프로필의 가장 빠른 기능 출력 속도(일반적"
"으로 희박하거나 단단한 충전재)에 대해 테스트를 실행하는 것이 좋습니다. 그런 "
-"다음 가장 느리고 가장 빠른 인쇄 가속을 위해 동일한 속도로 실행하고 Klipper 입"
+"다음 가장 느리고 가장 빠른 출력 가속을 위해 동일한 속도로 실행하고 Klipper 입"
"력 셰이퍼에서 제공하는 권장 최대 가속보다 빠르지 않게 실행하십시오.\n"
"2. 각 체적 유속 및 가속도에 대한 최적의 PA 값을 기록해 두십시오. 색상 구성표 "
"드롭다운에서 흐름을 선택하고 PA 패턴 라인 위로 수평 슬라이더를 이동하여 흐름 "
"번호를 찾을 수 있습니다. 페이지 하단에 번호가 표시되어야 합니다. 이상적인 PA "
"값은 체적 유량이 높을수록 감소해야 합니다. 그렇지 않은 경우 압출기가 올바르"
-"게 작동하는지 확인하십시오. 인쇄 속도가 느리고 가속도가 낮을수록 허용되는 PA "
+"게 작동하는지 확인하십시오. 출력 속도가 느리고 가속도가 낮을수록 허용되는 PA "
"값의 범위는 더 커집니다. 차이가 보이지 않으면 더 빠른 테스트의 PA 값을 사용하"
"십시오.3. 여기 텍스트 상자에 PA 값, 흐름 및 가속도의 세 가지 값을 입력하고 필"
"라멘트 프로필을 저장하세요.\n"
@@ -10792,7 +10797,7 @@ msgstr ""
"브릿지의 압력 전진 값입니다. 비활성화하려면 0으로 설정합니다. \n"
"\n"
" 브릿지를 프린팅할 때 PA 값이 낮으면 브릿지 직후에 약간의 언더 압출이 나타나"
-"는 것을 줄이는 데 도움이 됩니다. 이는 공중에서 인쇄할 때 노즐의 압력 강하로 "
+"는 것을 줄이는 데 도움이 됩니다. 이는 공중에서 출력할 때 노즐의 압력 강하로 "
"인해 발생하며 PA가 낮을수록 이를 방지하는 데 도움이 됩니다."
msgid ""
@@ -10830,7 +10835,7 @@ msgstr ""
"활성화되면 최소 레이어 시간을 충족하기 위한 외벽의 출력 속도 감속을 적용하지 "
"않습니다. 이 기능은 아래의 경우에 도움이 될 수 있습니다:\n"
"\n"
-"1. 유광 필라멘트로 인쇄할 때 일정한 광택을 유지하기 위한 경우 \n"
+"1. 유광 필라멘트로 출력할 때 일정한 광택을 유지하기 위한 경우 \n"
"2. 외벽 출력 속도의 변화로 인한 외벽의 Z밴딩처럼 보이는 형상이 생성되는 것을 "
"방지하기 위한 경우 \n"
"3. 외벽을 VFA를 발생시키는 속도로 출력하는 것을 방지하기 위한 경우\n"
@@ -10906,7 +10911,7 @@ msgstr ""
"의 경우 일반적으로 0입니다. 통계용으로만 사용됩니다"
msgid "Tool change time"
-msgstr "툴 체이진 시가"
+msgstr "툴 체인지 시간"
msgid ""
"Time taken to switch tools. It's usually applicable for tool changers or "
@@ -10976,7 +10981,7 @@ msgid "Loading speed"
msgstr "압출 속도"
msgid "Speed used for loading the filament on the wipe tower."
-msgstr "닦기 타워에 필라멘트를 압출하는 데 사용되는 속도입니다."
+msgstr "프라임 타워에 필라멘트를 압출하는 데 사용되는 속도입니다."
msgid "Loading speed at the start"
msgstr "시작 시 압출 속도"
@@ -10991,8 +10996,8 @@ msgid ""
"Speed used for unloading the filament on the wipe tower (does not affect "
"initial part of unloading just after ramming)."
msgstr ""
-"닦기 타워에 필라멘트를 빼는 데 사용되는 속도(래밍 직후 빼기 초기 부분에는 영"
-"향을 미치지 않음)"
+"프라임 타워에 필라멘트를 빼는 데 사용되는 속도(래밍 직후 빼기 초기 부분에는 "
+"영향을 미치지 않음)"
msgid "Unloading speed at the start"
msgstr "시작시 언로드 속도"
@@ -11048,7 +11053,7 @@ msgid "Cooling moves are gradually accelerating beginning at this speed."
msgstr "이 속도부터 냉각 동작이 점차 가속됩니다."
msgid "Minimal purge on wipe tower"
-msgstr "닦기 타워의 최소 청소"
+msgstr "프라임 타워의 최소 청소"
msgid ""
"After a tool change, the exact position of the newly loaded filament inside "
@@ -11057,10 +11062,10 @@ msgid ""
"object, Orca Slicer will always prime this amount of material into the wipe "
"tower to produce successive infill or sacrificial object extrusions reliably."
msgstr ""
-"툴 교환 후 노즐 내부에 새로 로드된 필라멘트의 정확한 위치를 알 수 없으며 필라"
-"멘트 압력이 아직 안정적이지 않을 수 있습니다. 프린트 헤드를 채우기 또는 희생 "
-"개체로 청소하기 전에 Orca Slicer은 항상 이 양의 재료를 닦기 타워로 프라이밍하"
-"여 연속적인 채우기 또는 희생 물체 압출을 안정적으로 생성합니다."
+"툴 체인지 후 노즐 내부에 새로 로드된 필라멘트의 정확한 위치를 알 수 없으며 필"
+"라멘트 압력이 아직 안정적이지 않을 수 있습니다. 프린트 헤드를 채우기 또는 희"
+"생 개체로 청소하기 전에 Orca Slicer은 항상 이 양의 재료를 프라임 타워로 프라"
+"이밍하여 연속적인 채우기 또는 희생 물체 압출을 안정적으로 생성합니다."
msgid "Speed of the last cooling move"
msgstr "마지막 냉각 이동 속도"
@@ -11087,9 +11092,9 @@ msgid ""
"the toolchange. This option is only used when the wipe tower is enabled."
msgstr ""
"다중 압출기 프린터를 사용할 때 래밍을 수행합니다(예: 프린터 설정에서 '단일 압"
-"출기 다중 재료'가 선택 취소된 경우). 활성화하면 툴 체인지 직전 닦기 타워에 소"
-"량의 필라멘트가 빠르게 압출됩니다. 이 옵션은 닦기 타워가 활성화된 경우에만 사"
-"용됩니다."
+"출기 다중 재료'가 선택 취소된 경우). 활성화하면 툴 체인지 직전 프라임 타워에 "
+"소량의 필라멘트가 빠르게 압출됩니다. 이 옵션은 프라임 타워가 활성화된 경우에"
+"만 사용됩니다."
msgid "Multi-tool ramming volume"
msgstr "다중 압출기 래밍 부피"
@@ -11423,10 +11428,10 @@ msgstr "팬 최대 속도 레이어"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"팬 속도는 \"close_fan_the_first_x_layers\" 의 0에서 \"full_fan_speed_layer\" "
"의 최고 속도까지 선형적으로 증가합니다. \"full_fan_speed_layer\"가 "
@@ -11499,7 +11504,7 @@ msgid ""
"(in mm). This setting applies to top, bottom and solid infill and, if using "
"the classic perimeter generator, to wall gap fill. "
msgstr ""
-"지정된 임계값(mm 단위)보다 길이가 작은 간격 채우기를 인쇄하지 마십시오. 이 설"
+"지정된 임계값(mm 단위)보다 길이가 작은 간격 채우기를 출력하지 마십시오. 이 설"
"정은 상단, 하단 및 솔리드 채우기에 적용되며, 클래식 주변 생성기를 사용하는 경"
"우 벽 간격 채우기에 적용됩니다. "
@@ -11574,13 +11579,13 @@ msgid "Undefine"
msgstr "알 수 없음"
msgid "Hardened steel"
-msgstr "경화강 노즐"
+msgstr "경화강"
msgid "Stainless steel"
-msgstr "스테인레스강 노즐"
+msgstr "스테인레스 스틸"
msgid "Brass"
-msgstr "황동 노즐"
+msgstr "황동"
msgid "Nozzle HRC"
msgstr "노즐 록웰 경도"
@@ -11776,7 +11781,7 @@ msgid ""
msgstr ""
"결합된 희소 채우기의 최대 레이어 높이입니다. \n"
"\n"
-"노즐 직경(인쇄 시간을 최대로 줄이기 위해)을 사용하려면 0 또는 100%로 설정하"
+"노즐 직경(출력 시간을 최대로 줄이기 위해)을 사용하려면 0 또는 100%로 설정하"
"고 희박한 채우기 강도를 최대화하려면 ~80% 값으로 설정합니다.\n"
"\n"
"채우기가 결합되는 레이어 수는 이 값을 레이어 높이로 나누고 가장 가까운 소수"
@@ -11809,7 +11814,7 @@ msgstr ""
"압출 및 축적 가능성을 최소화하려면 이 값을 ~10-15%로 설정하십시오."
msgid "Top/Bottom solid infill/wall overlap"
-msgstr "상단/하단 솔리드 채우기/벽 겹침"
+msgstr "상하단 솔리드 채우기/벽 겹침"
#, no-c-format, no-boost-format
msgid ""
@@ -11866,9 +11871,9 @@ msgid ""
"filaments touch. This improves the adhesion between filaments, especially "
"models printed in different materials."
msgstr ""
-"서로 다른 필라멘트가 접촉하는 곳에 맞물리는 구조의 (인터로킹) 빔을 생성합니"
-"다. 이 기능은 필라멘트 간의 결합력을 향상시키며, 서로 다른 재료로 출력한 모델"
-"에 특히 유용합니다."
+"서로 다른 필라멘트가 접촉하는 곳에 맞물리는 구조의 인터로킹 빔을 생성합니다. "
+"이 기능은 필라멘트 간의 결합력을 향상시키며, 서로 다른 재료로 출력한 모델에 "
+"특히 유용합니다."
msgid "Interlocking beam width"
msgstr "인터로킹 빔 너비"
@@ -12407,7 +12412,7 @@ msgstr ""
"100%% 돌출부의 경우 브릿지 속도가 사용됩니다."
msgid "Filament to print walls"
-msgstr "벽을 인쇄하는 필라멘트"
+msgstr "벽을 출력하는 필라멘트"
msgid ""
"Line width of inner wall. If expressed as a %, it will be computed over the "
@@ -12535,6 +12540,14 @@ msgstr "레이어 변경 시 후퇴"
msgid "Force a retraction when changes layer"
msgstr "레이어 변경 시 강제로 후퇴를 실행합니다"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "후퇴 길이"
@@ -12564,7 +12577,7 @@ msgstr "절단 시 후퇴 거리"
msgid ""
"Experimental feature.Retraction length before cutting off during filament "
"change"
-msgstr "실험적 특징.필라멘트 교환시 절단 전 후퇴길이"
+msgstr "실험적 기능. 필라멘트 교체 시 절단 전 후퇴 길이"
msgid "Z hop when retract"
msgstr "후퇴 시 Z 올리기"
@@ -12692,7 +12705,7 @@ msgstr ""
"니다"
msgid "Use firmware retraction"
-msgstr "펌웨어 후퇴 사용"
+msgstr "펌웨어 리트렉션 사용"
msgid ""
"This experimental setting uses G10 and G11 commands to have the firmware "
@@ -12948,7 +12961,7 @@ msgstr ""
"사용합니다"
msgid "Draft shield"
-msgstr "드래프트 쉴드"
+msgstr "드래프트 실드"
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and "
@@ -12961,13 +12974,13 @@ msgid ""
"distance from the object. Therefore, if brims are active it may intersect "
"with them. To avoid this, increase the skirt distance value.\n"
msgstr ""
-"드래프트 쉴드는 바람으로 인해 ABS 또는 ASA 인쇄물이 뒤틀리거나 인쇄 베드에서 "
+"드래프트 실드는 바람으로 인해 ABS 또는 ASA 출력물이 뒤틀리거나 출력 베드에서 "
"분리되는 것을 방지하는 데 유용합니다. 일반적으로 오픈 프레임 프린터, 즉 인클"
"로저가 없는 경우에만 필요합니다. \n"
"\n"
-"활성화 = 스커트가 가장 높은 인쇄물의 높이와 같습니다. 그렇지 않으면 '스커트 "
+"활성화 = 스커트가 가장 높은 출력물의 높이와 같습니다. 그렇지 않으면 '스커트 "
"높이'가 사용됩니다.\n"
-"참고: 드래프트 쉴드가 활성화되면 스커트는 개체로부터 스커트 거리에 인쇄됩니"
+"참고: 드래프트 실드가 활성화되면 스커트는 개체로부터 스커트 거리에 출력됩니"
"다. 따라서 챙이 활성화된 경우 챙과 교차할 수 있습니다. 이를 방지하려면 스커"
"트 거리 값을 늘리십시오.\n"
@@ -13015,10 +13028,10 @@ msgid ""
"Final number of loops is not taling into account whli arranging or "
"validating objects distance. Increase loop number in such case. "
msgstr ""
-"스커트를 인쇄할 때 최소 필라멘트 압출 길이(mm)입니다. 0은 이 기능이 비활성화"
+"스커트를 출력할 때 최소 필라멘트 압출 길이(mm)입니다. 0은 이 기능이 비활성화"
"되었음을 의미합니다.\n"
"\n"
-"프린터가 프라임 라인 없이 인쇄하도록 설정된 경우 0이 아닌 값을 사용하는 것이 "
+"프린터가 프라임 라인 없이 출력하도록 설정된 경우 0이 아닌 값을 사용하는 것이 "
"유용합니다.\n"
"루프의 최종 수는 객체 거리를 정렬하거나 검증하는 동안 고려되지 않습니다. 그러"
"한 경우에는 루프 수를 늘리십시오. "
@@ -13042,7 +13055,7 @@ msgid "Solid infill"
msgstr "솔리드 채우기"
msgid "Filament to print solid infill"
-msgstr "솔리드 인필을 인쇄하는 필라멘트"
+msgstr "솔리드 인필을 출력하는 필라멘트"
msgid ""
"Line width of internal solid infill. If expressed as a %, it will be "
@@ -13184,9 +13197,9 @@ msgid ""
"print the wipe tower. User is responsible for ensuring there is no collision "
"with the print."
msgstr ""
-"활성화되면 툴 체인지 없이 레이어에 닦기 타워가 출력되지 않습니다. 툴 체인지"
-"가 있는 레이어에서는 압출기가 아래쪽으로 이동하여 닦기 타워를 출력합니다. 출"
-"력물과의 충돌이 없는지 확인하는 것은 사용자의 책임입니다."
+"활성화되면 툴 체인지 없이 레이어에 프라임 타워가 출력되지 않습니다. 툴 체인지"
+"가 있는 레이어에서는 압출기가 아래쪽으로 이동하여 프라임 타워를 출력합니다. "
+"출력물과의 충돌이 없는지 확인하는 것은 사용자의 책임입니다."
msgid "Prime all printing extruders"
msgstr "모든 활성화된 압출기 프라이밍"
@@ -13206,7 +13219,7 @@ msgid ""
"triangle mesh slicing. The gap closing operation may reduce the final print "
"resolution, therefore it is advisable to keep the value reasonably low."
msgstr ""
-"간격 폐쇄 반경의 2배보다 작은 균열은 삼각형 메쉬 슬라이싱 중에 채워집니다. 간"
+"간격 폐쇄 반경의 2배보다 작은 균열은 삼각형 메시 슬라이싱 중에 채워집니다. 간"
"격 채우기 작업은 최종 출력 해상도를 감소시킬 수 있으므로 값을 합리적으로 낮"
"게 유지하는 것이 좋습니다."
@@ -13493,7 +13506,7 @@ msgstr ""
"다."
msgid "Preferred Branch Angle"
-msgstr "선호 가지 각도"
+msgstr "선호하는 가지 각도"
#. TRN PrintSettings: "Organic supports" > "Preferred Branch Angle"
msgid ""
@@ -13612,8 +13625,8 @@ msgstr "온도 제어 활성화"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -13624,7 +13637,7 @@ msgid ""
msgstr ""
"자동화된 챔버 온도 제어를 위해 이 옵션을 활성화합니다. 이 옵션은 "
"\"machine_start_gcode\" 이전에 M191 명령 내보내기를 활성화합니다.\n"
-" 챔버 온도를 설정하고 온도에 도달할 때까지 기다립니다. 또한 인쇄가 끝나면 챔"
+" 챔버 온도를 설정하고 온도에 도달할 때까지 기다립니다. 또한 출력가 끝나면 챔"
"버 히터를 끄는 M141 명령을 내보냅니다(있는 경우). \n"
"\n"
"이 옵션은 매크로를 통해 또는 기본적으로 M191 및 M141 명령을 지원하는 펌웨어"
@@ -13661,11 +13674,11 @@ msgstr ""
"기 막힘을 방지하기 위해 챔버 온도가 낮아야 하므로 이 옵션을 비활성화(0으로 설"
"정)해야 합니다.\n"
"\n"
-"활성화된 경우 이 매개변수는 원하는 챔버 온도를 인쇄 시작 매크로 또는 "
+"활성화된 경우 이 매개변수는 원하는 챔버 온도를 출력 시작 매크로 또는 "
"PRINT_START(기타 변수) CHAMBER_TEMP=[chamber_temp]와 같은 열 흡수 매크로에 전"
"달하는 데 사용할 수 있는 Chamber_temp라는 G코드 변수도 설정합니다. 이는 프린"
-"터가 M141/M191 명령을 지원하지 않거나 활성 챔버 히터가 설치되지 않은 경우 인"
-"쇄 시작 매크로에서 열 흡수를 처리하려는 경우 유용할 수 있습니다."
+"터가 M141/M191 명령을 지원하지 않거나 활성 챔버 히터가 설치되지 않은 경우 출"
+"력 시작 매크로에서 열 흡수를 처리하려는 경우 유용할 수 있습니다."
msgid "Nozzle temperature for layers after the initial one"
msgstr "초기 레이어 이후의 노즐 온도"
@@ -13767,8 +13780,8 @@ msgid ""
"stabilize the chamber pressure inside the nozzle, in order to avoid "
"appearance defects when printing objects."
msgstr ""
-"닦기 타워는 개체를 출력할 때 외관 결함을 방지하기 위해 노즐의 잔류물을 청소하"
-"고 노즐 내부의 압력을 안정화하는 데 사용할 수 있습니다."
+"프라임 타워는 개체를 출력할 때 외관 결함을 방지하기 위해 노즐의 잔류물을 청소"
+"하고 노즐 내부의 압력을 안정화하는 데 사용할 수 있습니다."
msgid "Purging volumes"
msgstr "버리기 볼륨"
@@ -13792,10 +13805,10 @@ msgid "Width of prime tower"
msgstr "프라임 타워의 너비"
msgid "Wipe tower rotation angle"
-msgstr "닦기 타워 회전 각도"
+msgstr "프라임 타워 회전 각도"
msgid "Wipe tower rotation angle with respect to x-axis."
-msgstr "X축 기준의 닦기 타워 회전 각도."
+msgstr "X축 기준의 프라임 타워 회전 각도."
msgid "Stabilization cone apex angle"
msgstr "안정화 원뿔 정점 각도"
@@ -13804,11 +13817,11 @@ msgid ""
"Angle at the apex of the cone that is used to stabilize the wipe tower. "
"Larger angle means wider base."
msgstr ""
-"닦기 타워를 안정화하는 데 사용되는 원뿔 꼭대기의 각도입니다. 각도가 클수록 베"
-"이스가 넓어집니다."
+"프라임 타워를 안정화하는 데 사용되는 원뿔 꼭대기의 각도입니다. 각도가 클수록 "
+"베이스가 넓어집니다."
msgid "Maximum wipe tower print speed"
-msgstr "최대 와이프 타워 인쇄 속도"
+msgstr "프라임 타워 최대 속도"
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe "
@@ -13831,11 +13844,11 @@ msgid ""
"For the wipe tower external perimeters the internal perimeter speed is used "
"regardless of this setting."
msgstr ""
-"와이프 타워에서 퍼징하고 와이프 타워 희박 레이어를 인쇄할 때 최대 인쇄 속도입"
+"와이프 타워에서 퍼징하고 와이프 타워 희박 레이어를 출력할 때 최대 출력 속도입"
"니다. 퍼징 시 희소 충전 속도 또는 필라멘트 최대 체적 속도에서 계산된 속도가 "
"더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
"\n"
-"희소 레이어를 인쇄할 때 내부 주변 속도 또는 필라멘트 최대 체적 속도에서 계산"
+"희소 레이어를 출력할 때 내부 주변 속도 또는 필라멘트 최대 체적 속도에서 계산"
"된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
"\n"
"이 속도를 높이면 타워의 안정성에 영향을 줄 수 있을 뿐만 아니라 노즐이 와이프 "
@@ -13851,8 +13864,8 @@ msgid ""
"The extruder to use when printing perimeter of the wipe tower. Set to 0 to "
"use the one that is available (non-soluble would be preferred)."
msgstr ""
-"닦기 타워의 둘레를 출력할 때 사용하는 압출기입니다. 사용 가능한 압출기를 사용"
-"하려면 0으로 설정하세요(비가용성 재료가 적절함)."
+"프라임 타워의 둘레를 출력할 때 사용하는 압출기입니다. 사용 가능한 압출기를 사"
+"용하려면 0으로 설정하세요(비가용성 재료가 적절함)."
msgid "Purging volumes - load/unload volumes"
msgstr "제거 부피 - 넣기/빼기 부피"
@@ -13862,7 +13875,7 @@ msgid ""
"wipe tower. These values are used to simplify creation of the full purging "
"volumes below."
msgstr ""
-"이 벡터는 닦기 타워에서 사용되는 각 툴을 교체하는 데 필요한 부피을 저장합니"
+"이 벡터는 프라임 타워에서 사용되는 각 툴을 교체하는 데 필요한 부피을 저장합니"
"다. 이러한 값은 아래의 전체 청소 부피 생성을 단순화하는 데 사용됩니다."
msgid ""
@@ -13901,10 +13914,10 @@ msgid "Maximal distance between supports on sparse infill sections."
msgstr "드문 채우기 부분의 지지대 사이의 최대 거리."
msgid "Wipe tower purge lines spacing"
-msgstr "닦기 타워 청소 선 간격"
+msgstr "프라임 타워 청소 선 간격"
msgid "Spacing of purge lines on the wipe tower."
-msgstr "닦기 타워의 청소 선 간격입니다."
+msgstr "프라임 타워의 청소 선 간격입니다."
msgid "Extra flow for purging"
msgstr "퍼지를 위한 추가 흐름"
@@ -13925,7 +13938,7 @@ msgid ""
"This is only used when 'Ooze prevention' is active in Print Settings. Set to "
"0 to disable."
msgstr ""
-"도구가 현재 다중 도구 설정에서 사용되지 않을 때의 노즐 온도. 이는 인쇄 설정에"
+"도구가 현재 다중 도구 설정에서 사용되지 않을 때의 노즐 온도. 이는 출력 설정에"
"서 '얼룩 방지'가 활성화된 경우에만 사용됩니다. 비활성화하려면 0으로 설정합니"
"다."
@@ -14318,7 +14331,7 @@ msgid "Has single extruder MM priming"
msgstr "단일 압출기 MM 프라이밍 있음"
msgid "Are the extra multi-material priming regions used in this print?"
-msgstr "이 인쇄물에 추가 다중 재료 프라이밍 영역이 사용됩니까?"
+msgstr "이 출력물에 추가 다중 재료 프라이밍 영역이 사용됩니까?"
msgid "Volume per extruder"
msgstr "압출기당 부피"
@@ -14550,7 +14563,7 @@ msgid "Optimizing toolpath"
msgstr "툴 경로 최적화"
msgid "Slicing mesh"
-msgstr "슬라이싱 메쉬"
+msgstr "슬라이싱 메시"
msgid ""
"No layers were detected. You might want to repair your STL file(s) or check "
@@ -14985,7 +14998,7 @@ msgid "Please find the best line on your plate"
msgstr "당신의 플레이트에서 가장 좋은 선을 찾아보세요"
msgid "Please find the corner with perfect degree of extrusion"
-msgstr "사출 품질이 제일 좋은 모서리를 찾아보세요"
+msgstr "완벽한 돌출 정도를 가진 코너를 찾아주세요."
msgid "Input Value"
msgstr "입력값"
@@ -15354,7 +15367,7 @@ msgid "ID"
msgstr "아이디"
msgid "Progress"
-msgstr "진행률"
+msgstr "진행 상황"
msgid "Host"
msgstr "호스트"
@@ -15388,7 +15401,7 @@ msgid "Unable to perform boolean operation on selected parts"
msgstr "선택한 부품에서 부울 연산을 수행할 수 없습니다"
msgid "Mesh Boolean"
-msgstr "메쉬 부울"
+msgstr "메시 합집합/차집합/교집합"
msgid "Union"
msgstr "합집합"
@@ -15566,8 +15579,8 @@ msgstr ""
"다시 작성하시겠습니까?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n"
@@ -16630,7 +16643,7 @@ msgid ""
"Simplify mesh feature? Right-click the model and select Simplify model."
msgstr ""
"모델 단순화\n"
-"메쉬 단순화 기능을 사용하여 메쉬의 삼각형 수를 줄일 수 있다는 것을 알고 계셨"
+"메시 단순화 기능을 사용하여 메시의 삼각형 수를 줄일 수 있다는 것을 알고 계셨"
"나요? 모델을 마우스 오른쪽 버튼으로 클릭하고 모델 단순화를 선택하세요."
#: resources/data/hints.ini: [hint:Slicing Parameter Table]
@@ -17626,8 +17639,8 @@ msgstr ""
#~ msgstr "드문 레이어 없음(실험적)"
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
#~ "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n"
diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po
index 39e7f9b448..1ac39062b1 100644
--- a/localization/i18n/nl/OrcaSlicer_nl.po
+++ b/localization/i18n/nl/OrcaSlicer_nl.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -4379,7 +4379,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Maat:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7675,8 +7675,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Bij het opnemen van timelapse zonder toolhead is het aan te raden om een "
"„Timelapse Wipe Tower” toe te voegen \n"
@@ -11358,10 +11358,10 @@ msgstr "Volledige snelheid op laag"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -12377,6 +12377,14 @@ msgstr ""
"Dit forceert retraction (terugtrekken van filament) als er gewisseld wordt "
"van laag"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Terugtrek (retraction) lengte"
@@ -13404,8 +13412,8 @@ msgstr "Temperatuurregeling activeren"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -13762,10 +13770,11 @@ msgid ""
"Wipe tower is only compatible with relative mode. It is recommended on most "
"printers. Default is checked"
msgstr ""
-"Relatieve extrusie wordt aanbevolen bij gebruik van de optie \"label_objects"
-"\". Sommige extruders werken beter als deze optie niet is aangevinkt "
-"(absolute extrusiemodus). Wipe tower is alleen compatibel met relatieve "
-"modus. Het wordt aanbevolen op de meeste printers. Standaard is aangevinkt"
+"Relatieve extrusie wordt aanbevolen bij gebruik van de optie "
+"\"label_objects\". Sommige extruders werken beter als deze optie niet is "
+"aangevinkt (absolute extrusiemodus). Wipe tower is alleen compatibel met "
+"relatieve modus. Het wordt aanbevolen op de meeste printers. Standaard is "
+"aangevinkt"
msgid ""
"Classic wall generator produces walls with constant extrusion width and for "
@@ -15290,8 +15299,8 @@ msgstr ""
"Wil je het herschrijven?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po
index a9e9df4db0..f34f1ae89d 100644
--- a/localization/i18n/pl/OrcaSlicer_pl.po
+++ b/localization/i18n/pl/OrcaSlicer_pl.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer 2.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: Krzysztof Morga \n"
"Language-Team: \n"
@@ -740,7 +740,7 @@ msgstr "Pole do wprowadzania tekstu nie może być puste."
msgid "Text contains character glyph (represented by '?') unknown by font."
msgstr ""
-"Tekst zawiera znak znaków (reprezentowany przez '?') nieznany dla czcionki."
+"Tekst zawiera glif znaku (reprezentowany przez \"?\") nieznany czcionce."
msgid "Text input doesn't show font skew."
msgstr "Wprowadzanie tekstu nie pokazuje nachylenia czcionki."
@@ -2501,8 +2501,8 @@ msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filaments."
msgstr ""
-"Wybierz gniazdo AMS, a następnie naciśnij przycisk \"Ładuj\" lub \"Rozładuj"
-"\" ,aby automatycznie załadować lub wyładować filamenty."
+"Wybierz gniazdo AMS, a następnie naciśnij przycisk \"Ładuj\" lub "
+"\"Rozładuj\" ,aby automatycznie załadować lub wyładować filamenty."
msgid "Edit"
msgstr "Edytuj"
@@ -4419,7 +4419,7 @@ msgstr "Objętość:"
msgid "Size:"
msgstr "Rozmiar:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7715,8 +7715,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Podczas nagrywania timelapse'a bez głowicy drukującej zaleca się dodanie "
"\"Timelaps - Wieża Czyszcząca\" \n"
@@ -9778,10 +9778,10 @@ msgid ""
msgstr ""
"Unikaj ruchów nad obrysami-\n"
"Maksymalna długość objazdu przy unikaniu przejeżdżania nad obrysami. Jeśli "
-"objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad obrysami"
-"\" zostanie zignorowana dla tej ścieżki. Długość objazdu można zdefiniować "
-"jako wartość absolutna lub obliczona procentowo (np. 50%) z długości ruchu "
-"bezpośredniego."
+"objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad "
+"obrysami\" zostanie zignorowana dla tej ścieżki. Długość objazdu można "
+"zdefiniować jako wartość absolutna lub obliczona procentowo (np. 50%) z "
+"długości ruchu bezpośredniego."
msgid "mm or %"
msgstr "mm lub %"
@@ -10195,7 +10195,7 @@ msgstr ""
"można zakotwiczyć mostów. "
msgid "Reverse on even"
-msgstr "Odwróć na parzystych"
+msgstr "Zmień kierunek na parzystych"
msgid "Overhang reversal"
msgstr "Przeciwny kierunek przy nawisach"
@@ -10232,7 +10232,7 @@ msgid ""
"Reverse Threshold to 0 so that all internal walls print in alternating "
"directions on even layers irrespective of their overhang degree."
msgstr ""
-"Zastosuj logikę odwracania obwodów tylko do obwodów wewnętrznych.\n"
+"Zastosuj logikę zmiany kierunku tylko do obwodów wewnętrznych.\n"
"\n"
"Ten parametr znacznie redukuje napięcia działające na elementy, ponieważ są "
"one teraz rozłożone w różnych kierunkach. Powinno to zmniejszyć "
@@ -10243,7 +10243,7 @@ msgstr ""
"podpartych obszarach.\n"
"\n"
"Aby ten parametr był jak najskuteczniejszy, zaleca się ustawienie progu "
-"odwrócenia na 0, aby wszystkie wewnętrzne ściany były drukowane w "
+"zmiany kierunku na 0, aby wszystkie wewnętrzne ściany były drukowane w "
"naprzemiennych kierunkach na warstwach parzystych, niezależnie od ich "
"stopnia nawisu."
@@ -10271,10 +10271,10 @@ msgid "Sacrificial layer"
msgstr "Warstwa pomocnicza"
msgid "Reverse threshold"
-msgstr "Próg odwrócenia"
+msgstr "Próg zmiany kierunku"
msgid "Overhang reversal threshold"
-msgstr "Próg odwrócenia przy nawisach"
+msgstr "Próg zmiany kierunku przy nawisach"
#, no-c-format, no-boost-format
msgid ""
@@ -10284,6 +10284,13 @@ msgid ""
"When Detect overhang wall is not enabled, this option is ignored and "
"reversal happens on every even layers regardless."
msgstr ""
+"Minimalna długość nawisu (w mm), przy której zmiana kierunku jest uznawana "
+"za użyteczną. Może być również wyrażona jako % szerokości obrysu.\n"
+"Wartość 0 powoduje zmianę kierunku na każdej parzystej warstwie, niezależnie "
+"od innych ustawień.\n"
+"\n"
+"Jeśli opcja wykrywanie ściany nawisu jest wyłączona, to ustawienie jest "
+"pomijane, a zmiana kierunku następuje na każdej parzystej warstwie."
msgid "Classic mode"
msgstr "Tryb klasyczny"
@@ -10352,6 +10359,12 @@ msgid ""
"are supported by less than 13%, whether they are part of a bridge or an "
"overhang."
msgstr ""
+"Szybkość druku zewnętrznych widocznych obrysów mostu.\n"
+"\n"
+"Ponadto, jeśli opcja zwalniania na łukach jest wyłączona lub włączony jest "
+"klasyczny tryb druku nawisów, to szybkość druku ścian nawisu, które mają "
+"wsparcie mniejsze niż 13%, będzie taka sama, niezależnie od tego, czy są "
+"częścią mostu, czy nawisu."
msgid "mm/s"
msgstr "mm/s"
@@ -10879,7 +10892,7 @@ msgstr ""
"Kierunek, w którym wytłaczane są pętle ścian, patrząc z góry.\n"
"\n"
"Domyślnie wszystkie ściany są wytłaczane w kierunku przeciwnym do ruchu "
-"wskazówek zegara, chyba że opcja Odwróć na parzystych jest włączona. "
+"wskazówek zegara, chyba że opcja Zmień kierunek na parzystych jest włączona. "
"Ustawienie tej opcji na coś innego niż Auto wymusi kierunek ściany, "
"niezależnie od ustawienia Odwróć na parzystych.\n"
"\n"
@@ -11848,10 +11861,10 @@ msgstr "Pełna prędkość wentylatora na warstwie"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Prędkość wentylatora będzie stopniowo zwiększana liniowo od zera na warstwie "
"\"close_fan_the_first_x_layers\" do maksymalnej na warstwie "
@@ -13032,6 +13045,17 @@ msgstr "Retrakcja przy zmianie warstwy"
msgid "Force a retraction when changes layer"
msgstr "Wymuś retrakcję przy zmianie warstwy"
+msgid "Retract on top layer"
+msgstr "Retrakcja na górnej warstwie"
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+"Włącz wymuszanie retrakcji na górnej warstwie. Wyłączenie tej opcji może "
+"prowadzić do gromadzenia się materiału i zatkania dyszy, zwłaszcza przy "
+"drukowaniu skomplikowanych i wolnych wzorów, takich jak krzywa Hilberta."
+
msgid "Retraction Length"
msgstr "Długość retrakcji"
@@ -13749,10 +13773,10 @@ msgid ""
"triangle mesh slicing. The gap closing operation may reduce the final print "
"resolution, therefore it is advisable to keep the value reasonably low."
msgstr ""
-"Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania szpar"
-"\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może zmniejszyć "
-"finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej wartości na "
-"rozsądnie niskim poziomie."
+"Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania "
+"szpar\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może "
+"zmniejszyć finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej "
+"wartości na rozsądnie niskim poziomie."
msgid "Slicing Mode"
msgstr "Tryb cięcia"
@@ -14176,8 +14200,8 @@ msgstr "Aktywuj kontrolę temperatury"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14435,9 +14459,9 @@ msgid ""
"The extruder to use when printing perimeter of the wipe tower. Set to 0 to "
"use the one that is available (non-soluble would be preferred)."
msgstr ""
-"Extruder używany do drukowania obrysów wieży czyszczącej. Ustaw na \"Domyślny"
-"\", aby użyć tego, który jest dostępny (preferowany jest ten, w którym "
-"załadowany jest filament nierozpuszczalny)."
+"Extruder używany do drukowania obrysów wieży czyszczącej. Ustaw na "
+"\"Domyślny\", aby użyć tego, który jest dostępny (preferowany jest ten, w "
+"którym załadowany jest filament nierozpuszczalny)."
msgid "Purging volumes - load/unload volumes"
msgstr "Objętości czyszczenia - objętości ładowania/rozładowania"
@@ -16227,8 +16251,8 @@ msgstr ""
"Czy chcesz go zastąpić?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Nazwa profilu zostanie zmieniona na \"Dostawca Typ Seria @nazwa drukarki, "
@@ -17262,8 +17286,8 @@ msgid ""
"the surface quality of your overhangs?"
msgstr ""
"Odwróć na nieparzystych\n"
-"Czy wiesz, że funkcja Odwróć na nieparzystych może znacząco poprawić "
-"jakość powierzchni twoich występów?"
+"Czy wiesz, że funkcja Zmień kierunek na nieparzystych może znacząco "
+"poprawić jakość powierzchni twoich występów?"
#: resources/data/hints.ini: [hint:Cut Tool]
msgid ""
@@ -17691,8 +17715,8 @@ msgstr ""
#~ "(działają one jak rodzaj bariery).\n"
#~ "\n"
#~ "Nie spowoduje to również zmiany ustawień wentylatora w początkowym G-"
-#~ "code, jeśli aktywowana jest opcja \"tylko niestandardowy początkowy G-code"
-#~ "\".\n"
+#~ "code, jeśli aktywowana jest opcja \"tylko niestandardowy początkowy G-"
+#~ "code\".\n"
#~ "\n"
#~ "Ustaw 0, aby wyłączyć tę funkcję."
@@ -17807,8 +17831,8 @@ msgstr ""
#~ "\n"
#~ "Jednakże w mocno pochylonych lub zakrzywionych modelach, zwłaszcza przy "
#~ "niskiej gęstości struktury wypełnienia, może to prowadzić do wywijania "
-#~ "się niewspieranej struktury wypełnienia, co powoduje efekt \"pillowing"
-#~ "\".\n"
+#~ "się niewspieranej struktury wypełnienia, co powoduje efekt "
+#~ "\"pillowing\".\n"
#~ "\n"
#~ "Włączenie tej opcji spowoduje drukowanie wewnętrznej warstwy mostka nad "
#~ "nieco niewspieraną wewnętrzną strukturą wypełnienia. Poniższe opcje "
@@ -19175,8 +19199,8 @@ msgstr ""
#~ "Elevation is too low for object. Use the \"Pad around object\" feature to "
#~ "print the object without elevation."
#~ msgstr ""
-#~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu"
-#~ "\", aby wydrukować model bez podniesienia."
+#~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół "
+#~ "modelu\", aby wydrukować model bez podniesienia."
#~ msgid ""
#~ "The endings of the support pillars will be deployed on the gap between "
diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
index 4b36b3629f..c5300cadad 100644
--- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
+++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
@@ -2,7 +2,7 @@
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2024-06-01 21:51-0300\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
@@ -4420,7 +4420,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Tamanho:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7716,8 +7716,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Ao gravar um timelapse sem o hotend aparecer, é recomendável adicionar uma "
"\"Torre Prime para Timelapse\" \n"
@@ -11581,10 +11581,10 @@ msgstr "Velocidade total do ventilador na camada"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"A velocidade do ventilador aumentará linearmente de zero na camada "
"\"close_fan_the_first_x_layers\" para o máximo na camada "
@@ -12729,6 +12729,14 @@ msgstr "Retrair ao mudar de camada"
msgid "Force a retraction when changes layer"
msgstr "Forçar uma retração ao mudar de camada"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Distância de retração"
@@ -13834,8 +13842,8 @@ msgstr "Ativar controle de temperatura"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15824,8 +15832,8 @@ msgstr ""
"Você deseja reescrevê-lo?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Renomearíamos os presets como \"Fornecedor Tipo Serial @ impressora que você "
diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po
index b4a99052f2..db9820c823 100644
--- a/localization/i18n/ru/OrcaSlicer_ru.po
+++ b/localization/i18n/ru/OrcaSlicer_ru.po
@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OrcaSlicer V2.2.0-beta2\n"
+"Project-Id-Version: OrcaSlicer V2.2.0 Official Release\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2024-09-25 22:36+0700\n"
"Last-Translator: \n"
"Language-Team: Andylg \n"
@@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.5\n"
msgid "Supports Painting"
@@ -101,8 +101,9 @@ msgstr "Позволяет рисовать на выбранных гранях
msgid "Highlight faces according to overhang angle."
msgstr "Выделение граней по углу свеса."
+# это в рисование поддержки идет после - Выделение граней по углу свеса.
msgid "No auto support"
-msgstr "Откл. автоподдержку"
+msgstr "Автоподдержка отключена."
msgid "Support Generated"
msgstr "Поддержка сгенерирована"
@@ -361,17 +362,17 @@ msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane"
msgstr ""
-"Нажмите, чтобы перевернуть секущую плоскость\n"
-"Двигайте, чтобы переместить секущую плоскость"
+"Нажмите, чтобы перевернуть секущую плоскость.\n"
+"Двигайте, чтобы переместить секущую плоскость."
msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane\n"
"Right-click a part to assign it to the other side"
msgstr ""
-"Нажмите, чтобы перевернуть секущую плоскость\n"
-"Двигайте, чтобы переместить секущую плоскость\n"
-"Правая кнопка мыши на части модели для переназначения стороны"
+"Нажмите, чтобы перевернуть секущую плоскость.\n"
+"Двигайте, чтобы переместить секущую плоскость.\n"
+"Для переназначения стороны части модели используйте правую кнопку мыши."
msgid "Move cut plane"
msgstr "Перемещение секущей плоскости"
@@ -507,16 +508,16 @@ msgstr "Обнаружены недопустимые соединения"
#, c-format, boost-format
msgid "%1$d connector is out of cut contour"
msgid_plural "%1$d connectors are out of cut contour"
-msgstr[0] "%1$d соединение выходит за контур модели"
-msgstr[1] "%1$d соединения выходит за контур модели"
-msgstr[2] "%1$d соединений выходит за контур модели"
+msgstr[0] "%1$d соединение выходит за контур модели."
+msgstr[1] "%1$d соединения выходит за контур модели."
+msgstr[2] "%1$d соединений выходит за контур модели."
#, c-format, boost-format
msgid "%1$d connector is out of object"
msgid_plural "%1$d connectors are out of object"
-msgstr[0] "%1$d соединение находится за пределами модели"
-msgstr[1] "%1$d соединения находится за пределами модели"
-msgstr[2] "%1$d соединений находится за пределами модели"
+msgstr[0] "%1$d соединение находится за пределами модели."
+msgstr[1] "%1$d соединения находится за пределами модели."
+msgstr[2] "%1$d соединений находится за пределами модели."
msgid "Some connectors are overlapped"
msgstr "Имеются пересекающие соединения"
@@ -605,7 +606,6 @@ msgstr "Показывать каркас"
msgid "%1%"
msgstr "%1%"
-# ???
msgid "Can't apply when process preview."
msgstr "Невозможно применить при предпросмотре нарезки."
@@ -1247,10 +1247,10 @@ msgstr ""
"Блокировка/разблокировка угла поворота при перетаскивании над поверхностью."
msgid "Mirror vertically"
-msgstr "Зеркалировать по вертикали"
+msgstr "Отзеркалить по вертикали"
msgid "Mirror horizontally"
-msgstr "Зеркалировать по горизонтали"
+msgstr "Отзеркалить по горизонтали"
#. TRN: This is the name of the action that shows in undo/redo stack (changing part type from SVG to something else).
msgid "Change SVG Type"
@@ -2446,11 +2446,11 @@ msgstr "Автодозаправка"
msgid "AMS not connected"
msgstr "АСПП не подключена"
-# ???? кнопка в интерфейсе? Extrude - Выдавить - Load
+# ??? кнопка в интерфейсе? Extrude - Выдавить - Load
msgid "Load"
msgstr "Выдавить"
-# ???? кнопка в интерфейсе? retract - Втянуть - Unload (Выгрузить, Вырузка)
+# ??? кнопка в интерфейсе? retract - Втянуть - Unload (Выгрузить, Вырузка)
msgid "Unload"
msgstr "Втянуть"
@@ -2483,6 +2483,7 @@ msgstr "Отменить калибровку"
msgid "Idling..."
msgstr "Простой..."
+# При выгрузке/загрузке прутка справа отображается процесс
msgid "Heat the nozzle"
msgstr "Нагрев сопла"
@@ -3877,6 +3878,7 @@ msgstr "Пауза при неисправности температуры ст
msgid "Filament unloading"
msgstr "Выгрузка прутка"
+# ???
msgid "Skip step pause"
msgstr "Пропуск команды паузы"
@@ -3889,6 +3891,7 @@ msgstr "Калибровка шума двигателя"
msgid "Paused due to AMS lost"
msgstr "Печать приостановлена из-за потери связи с АСПП"
+# ??? Печать приостановлена из-за низкой скорости вентилятора радиатора головы
msgid "Paused due to low speed of the heat break fan"
msgstr ""
"Печать приостановлена из-за низкой скорости вентилятора обдува радиатора "
@@ -4469,7 +4472,7 @@ msgstr "Объём:"
msgid "Size:"
msgstr "Размер:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -4610,7 +4613,7 @@ msgstr "Авторизация"
msgid "Preview"
msgstr "Предпросмотр нарезки"
-# ??? Управ. принтерами, Управ. устройствами, менеджер устройств, Диспетчер устройств, Принтеры
+# ??? Управ. принтерами, менеджер принтеров, Диспетчер принтеров
msgid "Multi-device"
msgstr "Принтеры"
@@ -5070,7 +5073,7 @@ msgid "File is missing"
msgstr "Файл отсутствует"
msgid "The project is no longer available."
-msgstr "Проект больше не доступен."
+msgstr "Проект больше недоступен."
msgid "Filament Settings"
msgstr "Настройки прутка"
@@ -5152,7 +5155,7 @@ msgstr ""
msgid "The printer has been logged out and cannot connect."
msgstr "Принтер вышел из системы и не может подключиться."
-# ??? Трансляция, видеотрансляция остановлена
+# ??? видеотрансляция остановлена
msgid "Stopped."
msgstr "Трансляция с камеры остановлена."
@@ -5784,8 +5787,8 @@ msgstr "Безопасное извлечение устройства."
msgid "%1$d Object has custom supports."
msgid_plural "%1$d Objects have custom supports."
msgstr[0] "%1$d модель имеет пользовательскую поддержку."
-msgstr[1] "%1$d модели имеют пользовательские поддержки."
-msgstr[2] "%1$d моделей имеют пользовательские поддержки."
+msgstr[1] "%1$d модели имеют пользовательскую поддержку."
+msgstr[2] "%1$d моделей имеют пользовательскую поддержку."
#, c-format, boost-format
msgid "%1$d Object has color painting."
@@ -5958,7 +5961,7 @@ msgid "View all object's settings"
msgstr "Просмотр всех настроек модели"
msgid "Material settings"
-msgstr "Параметры материала"
+msgstr "Настройки материала"
msgid "Remove current plate (if not last one)"
msgstr "Удалить текущую печатную пластину (кроме последней)"
@@ -6120,7 +6123,7 @@ msgid ""
"nozzle hardness of the printer. Please replace the hardened nozzle or "
"filament, otherwise, the nozzle will be attrited or damaged."
msgstr ""
-"Твердость сопла, установленного по умолчанию, не достаточна для печати "
+"Твердость сопла, установленного по умолчанию, недостаточна для печати "
"данной пластиковой нитью. Замените сопло на закалённое или смените "
"пластиковую нить. В противном случае сопло будет изношено или повреждено."
@@ -6510,15 +6513,17 @@ msgid ""
"will be kept. You may fix the meshes and try again."
msgstr ""
"Невозможно выполнить булеву операцию над сетками модели. Будут сохранены "
-"только положительные части. Вы можете исправить сетки и попробовать снова."
+"только положительные части. Попробуйте починить сетку модели и попробовать "
+"снова."
#, boost-format
msgid "Reason: part \"%1%\" is empty."
msgstr "Причина: часть \"%1%\" пустая."
+# ??? не формирует объем, не имеет замкнутой геометрии
#, boost-format
msgid "Reason: part \"%1%\" does not bound a volume."
-msgstr "Причина: часть \"%1%\" не ограничивает объём."
+msgstr "Причина: часть \"%1%\" не формирует замкнутый объём."
#, boost-format
msgid "Reason: part \"%1%\" has self intersection."
@@ -6532,6 +6537,8 @@ msgid ""
"Unable to perform boolean operation on model meshes. Only positive parts "
"will be exported."
msgstr ""
+"Невозможно выполнить булеву операцию над сетками модели. Будут "
+"экспортированы только положительные части."
msgid ""
"Are you sure you want to store original SVGs with their local paths into the "
@@ -7091,14 +7098,13 @@ msgstr "Создать принтер"
msgid "The selected preset is null!"
msgstr "Выбранный профиль пуст!"
-# ?????? В двух местах - в одном месте кнопка в другом Конечный слой
+# ?????? В двух местах - в одном месте кнопка в другом Конечный слой. В V2.2.0beta2 пока не исправлено
msgid "End"
msgstr "End"
msgid "Customize"
msgstr "Настройка"
-# ??? layer?
msgid "Other layer filament sequence"
msgstr "Последовательность прутков на других слоях"
@@ -7801,8 +7807,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"При записи таймлапса без видимости головы рекомендуется добавить «Черновая "
"башня таймлапса». \n"
@@ -7956,7 +7962,7 @@ msgid "Flow ratio and Pressure Advance"
msgstr "Коэффициент потока и Pressure Advance"
msgid "Print chamber temperature"
-msgstr "Температура в камере"
+msgstr "Температура в термокамере при печати"
msgid "Print temperature"
msgstr "Температура печати"
@@ -8061,7 +8067,7 @@ msgstr ""
"расчётное время печати слоя меньше установленного значения."
msgid "Auxiliary part cooling fan"
-msgstr "Вспомогательный вентилятор для охлаждения моделей"
+msgstr "Вспомогательный вентилятор модели"
msgid "Exhaust fan"
msgstr "Вытяжной вентилятор"
@@ -8192,10 +8198,6 @@ msgstr "Диаметр сопла"
msgid "Wipe tower"
msgstr "Черновая башня"
-# ????2 Параметры замены материала в одноэкструдерном ММ принтере
-# ???? Параметры экструдера в одноэкструдерном мультиматериальном принтере
-# ???? Параметры для экструдера в одноэкструдерном мультиматериальном принтере
-# ???? Параметры для одноэкструдерной мультиматериальном печати
msgid "Single extruder multi-material parameters"
msgstr "Параметры одноэкструдерного мультиматериального принтера"
@@ -8772,7 +8774,9 @@ msgid ""
"objects, it just orientates the selected ones.Otherwise, it will orientates "
"all objects in the current disk."
msgstr ""
-"Автоориентация моделей (ориентация выбранного, иначе всего на текущем столе)"
+"Автоориентация выбранных или всех моделей. Если выбраны отдельные модели, "
+"ориентация будет применена только к ним; в противном случае ко всем моделям "
+"на текущем столе."
msgid "Shift+Tab"
msgstr "Shift+Tab"
@@ -8940,10 +8944,10 @@ msgid "Select the object/part and press space to change the name"
msgstr "Выберите модель/часть и нажмите пробел, чтобы изменить имя"
msgid "Mouse click"
-msgstr "Щелчок кнопкой мыши"
+msgstr "Левая кнопка мыши"
msgid "Select the object/part and mouse click to change the name"
-msgstr "Выберите модель/часть и нажмите клавишу мыши, чтобы изменить имя"
+msgstr "Выберите модель/часть и нажмите левую клавишу мыши, чтобы изменить имя"
msgid "Objects List"
msgstr "Список моделей"
@@ -10133,7 +10137,6 @@ msgstr ""
msgid "Cooling overhang threshold"
msgstr "Порог включения обдува на нависаниях"
-#, fuzzy, c-format
msgid ""
"Force cooling fan to be specific speed when overhang degree of printed part "
"exceeds this value. Expressed as percentage which indicates how much width "
@@ -10394,6 +10397,7 @@ msgstr "Порог для реверса"
msgid "Overhang reversal threshold"
msgstr "Порог разворота на свесах"
+# ?????
#, no-c-format, no-boost-format
msgid ""
"Number of mm the overhang need to be for the reversal to be considered "
@@ -10402,6 +10406,14 @@ msgid ""
"When Detect overhang wall is not enabled, this option is ignored and "
"reversal happens on every even layers regardless."
msgstr ""
+"Величина свеса периметра при которой она считается достаточной для активации "
+"функции реверса печати нависаний. Может быть в мм или в % от ширины "
+"периметра.\n"
+"При нуле разворот будет на каждом чётном слое, независимо от величина "
+"свеса.\n"
+"Если «Определять нависающие периметры» не включено, этот параметр "
+"игнорируется, и разворот происходит на каждом чётном слое без "
+"исключений."
msgid "Classic mode"
msgstr "Классический режим"
@@ -10928,7 +10940,7 @@ msgid ""
"\n"
" "
msgstr ""
-"Последовательность печати внутреннего/внешнего периметров.\n"
+"Последовательность печати внутреннего и внешнего периметров.\n"
"\n"
"Используйте порядок печати периметров «Внутренний/Внешний» для получения "
"наилучших нависаний. Однако этот вариант приводит к небольшому снижению "
@@ -11085,7 +11097,7 @@ msgstr ""
"максимальные точки. OrcaSlicer следит за тем, чтобы значения "
"adaptive_bed_mesh_min/adaptive_bed_mesh_max не превышают эти минимальные/"
"максимальные значения. Эту информацию можно получить у производителя "
-"принтера. По умолчанию установлено значение (-99999, -99999), которое "
+"принтера. По умолчанию установлено значение (99999, 99999), которое "
"означает отсутствие ограничений, что позволяет проводить зондирование по "
"всему столу."
@@ -11117,7 +11129,6 @@ msgstr ""
"Используется только в качестве визуальной помощи в пользовательском "
"интерфейсе"
-# ??? Смещение экструдера по осям X/Y
msgid "Extruder offset"
msgstr "Смещение координат экструдера"
@@ -11834,8 +11845,8 @@ msgstr ""
"две ближайшие линии заполнения с коротким отрезком периметра. Если не "
"найдено такого отрезка периметра короче этого параметра, линия заполнения "
"соединяется с отрезком периметра только с одной стороны, а длина отрезка "
-"периметра ограничена значением «Длина привязок разреженного "
-"заполнения» (infill_anchor), но не больше этого параметра.\n"
+"периметра ограничена значением «Длина привязок разреженного заполнения» "
+"(infill_anchor), но не больше этого параметра.\n"
"Если установить 0, то будет использоваться старый алгоритм для соединения "
"заполнения, который даёт такой же результат, как и при значениях 1000 и 0."
@@ -11900,7 +11911,7 @@ msgstr "Вкл. ограничение ускорения зигзагов"
msgid "Klipper's max_accel_to_decel will be adjusted automatically"
msgstr ""
-"Значение ограничение ускорения зигзагов (max_accel_to_decel) в Klipper будет "
+"Значение Klipper-а ограничение ускорения зигзагов (max_accel_to_decel) будет "
"скорректировано автоматически.\n"
"\n"
"Параметр предназначен для ограничения влияния экстремальных переходов от "
@@ -11914,8 +11925,8 @@ msgstr "Ограничение ускорение зигзагов"
msgid ""
"Klipper's max_accel_to_decel will be adjusted to this %% of acceleration"
msgstr ""
-"Значение ограничение ускорения зигзагов (max_accel_to_decel) в Klipper будет "
-"скорректировано на заданный процент ускорения."
+"Значение Klipper-а ограничение ускорения зигзагов (max_accel_to_decel) будет "
+"скорректировано на данный процент ускорения."
msgid "Jerk of outer walls"
msgstr "Рывок для внешних периметров."
@@ -11990,17 +12001,17 @@ msgstr "Полная скорость вентилятора на слое"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Скорость вентилятора будет нарастать линейно от нуля на слое "
-"\"close_fan_the_first_x_layers\" до максимума на слое \"full_fan_speed_layer"
-"\". Значение \"full_fan_speed_layer\" будет игнорироваться, если оно меньше "
-"значения \"close_fan_the_first_x_layers\", в этом случае вентилятор будет "
-"работать на максимально допустимой скорости на слое "
-"\"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" до максимума на слое "
+"\"full_fan_speed_layer\". Значение \"full_fan_speed_layer\" будет "
+"игнорироваться, если оно меньше значения \"close_fan_the_first_x_layers\", в "
+"этом случае вентилятор будет работать на максимально допустимой скорости на "
+"слое \"close_fan_the_first_x_layers\" + 1."
msgid "layer"
msgstr "слой"
@@ -12088,7 +12099,7 @@ msgid ""
"printed more slowly"
msgstr ""
"Скорость заполнения пробелов. Пробелы обычно имеют неравномерную ширину "
-"линии и должен печататься медленнее."
+"линии и должны печататься медленнее."
msgid "Precise Z height"
msgstr "Точная высота по Z"
@@ -12311,7 +12322,7 @@ msgstr "Включите, если хотите использовать нес
# ?????? Название моделей
msgid "Label objects"
-msgstr "Помечать объекты"
+msgstr "Помечать модели"
# ??????
msgid ""
@@ -12321,7 +12332,8 @@ msgid ""
"setup and Wipe into Object / Wipe into Infill."
msgstr ""
"Отвечает за присвоение уникальных меток или названий каждой модели или "
-"элементу, что позволяет отменять печать любого из них по вашему выбору."
+"элементу, что позволяет отменять печать любого из них по вашему выбору.\n"
+"\n"
"Включите эту опцию, чтобы добавить комментарии в G-код с указанием того, к "
"какой модели он принадлежит, что полезно для плагина Octoprint CancelObject. "
"Эта настройка не совместима с настройкой «Одноэкструдерный "
@@ -12329,11 +12341,11 @@ msgstr ""
"модели»."
msgid "Exclude objects"
-msgstr "Исключить модели"
+msgstr "Исключение моделей"
msgid "Enable this option to add EXCLUDE OBJECT command in g-code"
msgstr ""
-"Включите эту опцию, чтобы добавить команду EXCLUDE OBJECT (исключения "
+"Включите эту опцию, чтобы добавить команду EXCLUDE OBJECT (исключение "
"моделей) в G-код для принтера с прошивкой Klipper."
msgid "Verbose G-code"
@@ -13151,7 +13163,7 @@ msgstr "Расширение первого слоя"
msgid "Expand the first raft or support layer to improve bed plate adhesion"
msgstr ""
"Расширение первого слоя подложки или поддержки в плоскости XY для улучшения "
-"адгезии с материалами склонными к отлипанию и закручиванию."
+"адгезии при печати материалами склонными к отлипанию и закручиванию."
msgid "Raft layers"
msgstr "Слоёв в подложке"
@@ -13202,6 +13214,14 @@ msgstr "Откат при смене слоя"
msgid "Force a retraction when changes layer"
msgstr "Эта опция включает принудительный откат при переходе со слоя на слой."
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Длина отката"
@@ -13542,7 +13562,7 @@ msgid ""
"scarf."
msgstr ""
"Длина клиновидного шва. Установка этого параметра на ноль фактически "
-"отключает шарф."
+"отключает клиновидный шов."
msgid "Scarf steps"
msgstr "Шагов клиновидного шва"
@@ -13816,9 +13836,9 @@ msgid ""
"zero value."
msgstr ""
"Разница температур, которая будет применяться, когда экструдер не активен. "
-"Значение не используется, если для параметра «Температура "
-"ожидания» ('idle_temperature') в настройках пластиковой нити установлено "
-"ненулевое значение."
+"Значение не используется, если для параметра «Температура ожидания» "
+"('idle_temperature') в настройках пластиковой нити установлено ненулевое "
+"значение."
msgid "Preheat time"
msgstr "Время преднагрева"
@@ -14375,8 +14395,8 @@ msgstr "Вкл. контроль температуры"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14832,9 +14852,12 @@ msgid ""
msgstr ""
"Движок классического генератора периметров создаёт их с постоянной шириной "
"экструзии, а для очень тонких участков используется параметр «Заполнять "
-"щели». Движок Arachne же создаёт периметры с переменной шириной экструзии, "
-"что позволяет печатать без щелей, лучше пропечатывать мелкие элементы (при "
-"условии, что у вас правильно откалиброван LA/PA)."
+"щели».\n"
+"\n"
+"Движок Arachne же создаёт периметры с переменной шириной экструзии, что "
+"позволяет печатать без щелей, лучше пропечатывать мелкие элементы (при "
+"условии, что у вас правильно откалиброван LA/PA). Этот параметр также влияет "
+"на концентрическое заполнение."
msgid "Classic"
msgstr "Классический"
@@ -16288,8 +16311,9 @@ msgstr "Пересечение"
msgid "Source Volume"
msgstr "Исходный объём"
+# ???
msgid "Tool Volume"
-msgstr ""
+msgstr "Объём инструмента"
msgid "Subtract from"
msgstr "Главный"
@@ -16455,8 +16479,8 @@ msgstr ""
"Хотите перезаписать его?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Мы переименуем профиль в \"Производитель Тип Серия @выбранный принтер\".\n"
@@ -17439,7 +17463,7 @@ msgid ""
"Auxiliary fan\n"
"Did you know that OrcaSlicer supports Auxiliary part cooling fan?"
msgstr ""
-"Вспомогательный вентилятор для охлаждения моделей\n"
+"Вспомогательный вентилятор модели\n"
"Знаете ли вы, что OrcaSlicer поддерживает управление вспомогательным "
"вентилятором для охлаждения моделей?"
diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po
index c255febe9c..53c78a31ae 100644
--- a/localization/i18n/sv/OrcaSlicer_sv.po
+++ b/localization/i18n/sv/OrcaSlicer_sv.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -4310,7 +4310,7 @@ msgstr "Volym:"
msgid "Size:"
msgstr "Storlek:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7143,8 +7143,8 @@ msgstr ""
msgid ""
"Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr ""
-"Timelapse stöds inte eftersom utskrifts sekvensen är inställd på \"Per objekt"
-"\"."
+"Timelapse stöds inte eftersom utskrifts sekvensen är inställd på \"Per "
+"objekt\"."
msgid "Errors"
msgstr "Fel"
@@ -7516,8 +7516,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"När du spelar in timelapse utan verktygshuvud rekommenderas att du lägger "
"till ett \"Timelapse Wipe Tower\".\n"
@@ -10002,9 +10002,9 @@ msgid ""
"quality for needle and small details"
msgstr ""
"Aktivera detta val för att sänka utskifts hastigheten för att göra den sista "
-"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets tröskel"
-"\", detta så att lager kan kylas under en längre tid. Detta kan förbättra "
-"kylnings kvaliteten för små detaljer"
+"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets "
+"tröskel\", detta så att lager kan kylas under en längre tid. Detta kan "
+"förbättra kylnings kvaliteten för små detaljer"
msgid "Normal printing"
msgstr "Normal utskrift"
@@ -11096,10 +11096,10 @@ msgstr "Full fläkthastighet vid lager"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
msgid "layer"
@@ -12085,6 +12085,14 @@ msgstr "Retraktera vid lager byte"
msgid "Force a retraction when changes layer"
msgstr "Tvinga retraktion vid lager byte"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Retraktions längd"
@@ -13082,8 +13090,8 @@ msgstr ""
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14938,8 +14946,8 @@ msgstr ""
"Vill du skriva om det?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po
index a2dbc8429d..568994d747 100644
--- a/localization/i18n/tr/OrcaSlicer_tr.po
+++ b/localization/i18n/tr/OrcaSlicer_tr.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2024-10-01 22:31+0300\n"
"Last-Translator: GlauTech\n"
"Language-Team: \n"
@@ -4376,7 +4376,7 @@ msgstr "Hacim:"
msgid "Size:"
msgstr "Boyut:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7649,8 +7649,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"Araç başlığı olmadan timelapse kaydederken, bir \"Timelapse Wipe Tower\" "
"eklenmesi önerilir.\n"
@@ -9267,8 +9267,8 @@ msgid ""
"Please select \"By object\" print sequence to print multiple objects in "
"spiral vase mode."
msgstr ""
-"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye göre"
-"\" yazdırma sırasını seçin."
+"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye "
+"göre\" yazdırma sırasını seçin."
msgid ""
"The spiral vase mode does not work when an object contains more than one "
@@ -11720,16 +11720,17 @@ msgstr "Maksimum fan hızı"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Fan hızı, \"close_fan_the_first_x_layers\" katmanında sıfırdan "
"\"ful_fan_speed_layer\" katmanında maksimuma doğrusal olarak artırılacaktır. "
"\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden "
-"düşükse göz ardı edilecektir; bu durumda fan, \"close_fan_the_first_x_layers"
-"\" + 1 katmanında izin verilen maksimum hızda çalışacaktır."
+"düşükse göz ardı edilecektir; bu durumda fan, "
+"\"close_fan_the_first_x_layers\" + 1 katmanında izin verilen maksimum hızda "
+"çalışacaktır."
msgid "layer"
msgstr "katman"
@@ -12884,6 +12885,14 @@ msgstr "Katman değişiminde geri çek"
msgid "Force a retraction when changes layer"
msgstr "Katmanı değiştirdiğinde geri çekilmeyi zorla"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Geri Çekme Uzunluğu"
@@ -14012,8 +14021,8 @@ msgstr "Sıcaklık kontrolünü etkinleştirin"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -16049,8 +16058,8 @@ msgstr ""
"Yeniden yazmak ister misin?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Ön ayarları şu şekilde yeniden adlandırırdık: \"Satıcı Türü Seçtiğiniz Seri "
@@ -18389,12 +18398,12 @@ msgstr ""
#~ msgstr "Seyrek katman yok (DENEYSEL)"
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgid "The Config can not be loaded."
diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po
index f256fba815..d6bc51d674 100644
--- a/localization/i18n/uk/OrcaSlicer_uk.po
+++ b/localization/i18n/uk/OrcaSlicer_uk.po
@@ -9,16 +9,16 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-27 23:05+0800\n"
-"PO-Revision-Date: 2024-06-30 23:05+0300\n"
+"PO-Revision-Date: 2024-12-23 20:09+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: uk_UA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
-"X-Generator: Poedit 3.4.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
+"X-Generator: Poedit 3.5\n"
msgid "Supports Painting"
msgstr "Малювання підтримки"
@@ -78,7 +78,7 @@ msgid "Smart fill angle"
msgstr "Розумний кут заповнення"
msgid "On overhangs only"
-msgstr "Лише на звисах"
+msgstr "Лише на нависаннях"
msgid "Auto support threshold angle: "
msgstr "Пороговий кут автоматичної підтримки: "
@@ -109,7 +109,7 @@ msgid "Support Generated"
msgstr "Генерація підтримки"
msgid "Gizmo-Place on Face"
-msgstr "Gizmo \"Поверхнею на стіл\""
+msgstr "Gizmo-Покласти на Грань"
msgid "Lay on face"
msgstr "Покласти на грань"
@@ -1640,7 +1640,7 @@ msgid "Ironing"
msgstr "Розгладжування"
msgid "Fuzzy Skin"
-msgstr "Нечітка оболонка"
+msgstr "Шорстка Поверхня"
msgid "Extruders"
msgstr "Екструдери"
@@ -1771,7 +1771,7 @@ msgid "Set as individual objects"
msgstr "Встановити як окремі об'єкти"
msgid "Fill bed with copies"
-msgstr "Заповнити весь стіл копіями"
+msgstr "Заповнити пластину копіями"
msgid "Fill the remaining area of bed with copies of the selected object"
msgstr "Заповніть решту площу столу копіями вибраного об'єкта"
@@ -1952,7 +1952,7 @@ msgid "Arrange"
msgstr "Організувати"
msgid "arrange current plate"
-msgstr "упорядкувати поточну табличку"
+msgstr "упорядкувати поточну пластину"
msgid "Reload All"
msgstr "Перезавантажити все"
@@ -2261,10 +2261,10 @@ msgid "Mouse ear"
msgstr "Мишаче вушко"
msgid "Outer brim only"
-msgstr "Кайма тільки зовні"
+msgstr "Тільки зовні"
msgid "Inner brim only"
-msgstr "Кайма тільки всередині"
+msgstr "Тільки всередині"
msgid "Outer and inner brim"
msgstr "Зовні та всередині"
@@ -2276,7 +2276,7 @@ msgid "Outer wall speed"
msgstr "Швидкість зовнішньої стінки"
msgid "Plate"
-msgstr "Стіл"
+msgstr "Пластина"
msgid "Brim"
msgstr "Кайма"
@@ -3672,8 +3672,8 @@ msgid ""
"\n"
"The value will be reset to 0."
msgstr ""
-"Занадто велика компенсація слонячої ноги недоцільна.\n"
-"Якщо є серйозний ефект слонячої ноги, перевірте інші параметри друку.\n"
+"Занадто велика компенсація слонової стопи недоцільна.\n"
+"Якщо є серйозний ефект слонової стопи, перевірте інші параметри друку.\n"
"Наприклад, чи не надто висока температура столу.\n"
"\n"
"Значення буде скинуто на 0."
@@ -4124,7 +4124,7 @@ msgid "Generating geometry index data"
msgstr "Генерація даних індексу геометрії"
msgid "Statistics of All Plates"
-msgstr "Статистика"
+msgstr "Статистика всіх пластин"
msgid "Display"
msgstr "Відображати"
@@ -4202,7 +4202,7 @@ msgid "Filament Changes"
msgstr "Зміна філаменту"
msgid "Wipe"
-msgstr "Протирання"
+msgstr "Очищення"
msgid "Options"
msgstr "Параметри"
@@ -4268,7 +4268,7 @@ msgid "Quality / Speed"
msgstr "Якість/Швидкість"
msgid "Smooth"
-msgstr "Гладкий"
+msgstr "Плаввний"
msgid "Radius"
msgstr "Радіус"
@@ -4355,7 +4355,7 @@ msgid "Align to Y axis"
msgstr "Вирівняти за осі Y"
msgid "Add plate"
-msgstr "Додати плату"
+msgstr "Додати пластину"
msgid "Auto orient"
msgstr "Автоорієнтація"
@@ -4364,7 +4364,7 @@ msgid "Arrange all objects"
msgstr "Упорядкувати всі об'єкти"
msgid "Arrange objects on selected plates"
-msgstr "Розставити об'єкти на столі"
+msgstr "Розставити об'єкти на вибраних пластинах"
msgid "Split to objects"
msgstr "Розділити на об'єкти"
@@ -4376,7 +4376,7 @@ msgid "Assembly View"
msgstr "Вигляд складання"
msgid "Select Plate"
-msgstr "Вибір столу"
+msgstr "Вибрати Пластину"
msgid "Assembly Return"
msgstr "Повернення збірки"
@@ -4408,7 +4408,7 @@ msgstr "Об'єм:"
msgid "Size:"
msgstr "Розмір:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -4417,13 +4417,13 @@ msgstr ""
"розділити конфліктуючі об'єкти далі (%s <-> %s)."
msgid "An object is layed over the boundary of plate."
-msgstr "Об'єкт накладений на межу столу."
+msgstr "Об'єкт виходить за межі пластини."
msgid "A G-code path goes beyond the max print height."
msgstr "Шлях G-коду виходить за максимально допустиму висоту друку."
msgid "A G-code path goes beyond the boundary of plate."
-msgstr "Шлях G-коду виходить за межі зони друку."
+msgstr "Шлях G-коду виходить за межі пластини."
msgid "Only the object being edit is visible."
msgstr "Відображається лише редагований об'єкт."
@@ -4489,7 +4489,7 @@ msgid "Liveview Retry"
msgstr "Повторити перегляд у реальному часі"
msgid "Resolution"
-msgstr "Дозвіл нарізки"
+msgstr "Роздільна здатність"
msgid "Enable"
msgstr "Увімкнення"
@@ -4559,10 +4559,10 @@ msgid "will be closed before creating a new model. Do you want to continue?"
msgstr "буде закрито перед створенням нової моделі. Ви хочете продовжити?"
msgid "Slice plate"
-msgstr "Нарізати моделі"
+msgstr "Нарізати пластину"
msgid "Print plate"
-msgstr "Друкована пластина"
+msgstr "Друкувати пластину"
msgid "Slice all"
msgstr "Нарізати все"
@@ -4571,13 +4571,13 @@ msgid "Export G-code file"
msgstr "Експорт файлу G-коду"
msgid "Export plate sliced file"
-msgstr "Експорт файлу зрізів планшета"
+msgstr "Експортувати файл нарізки пластини"
msgid "Export all sliced file"
-msgstr "Експортувати весь нарізаний файл"
+msgstr "Експортувати файл нарізки всього"
msgid "Print all"
-msgstr "Роздрукувати все"
+msgstr "Друкувати все"
msgid "Send all"
msgstr "Надіслати все"
@@ -4621,14 +4621,14 @@ msgid "Top"
msgstr "Верх"
msgid "Top View"
-msgstr "Вигляд зверху"
+msgstr "Вид зверху"
#. TRN To be shown in the main menu View->Bottom
msgid "Bottom"
-msgstr "Ніз"
+msgstr "Низ"
msgid "Bottom View"
-msgstr "Вигляд знизу"
+msgstr "Вид знизу"
msgid "Front"
msgstr "Перед"
@@ -4640,49 +4640,49 @@ msgid "Rear"
msgstr "Зад"
msgid "Rear View"
-msgstr "Вигляд ззаду"
+msgstr "Вид ззаду"
msgid "Left"
msgstr "Ліво"
msgid "Left View"
-msgstr "Вигляд зліва"
+msgstr "Вид зліва"
msgid "Right"
msgstr "Право"
msgid "Right View"
-msgstr "Вигляд справа"
+msgstr "Вид справа"
msgid "Start a new window"
msgstr "Почати нове вікно"
msgid "New Project"
-msgstr "Новий проект"
+msgstr "Новий проєкт"
msgid "Start a new project"
-msgstr "Почати новий проект"
+msgstr "Почати новий проєкт"
msgid "Open a project file"
-msgstr "Відкрийте файл проекту"
+msgstr "Відкрити файл проекту"
msgid "Recent projects"
-msgstr "Недавні проекти"
+msgstr "Недавні проєкти"
msgid "Save Project"
-msgstr "Зберегти проект"
+msgstr "Зберегти проєкт"
msgid "Save current project to file"
-msgstr "Зберегти поточний проект у файл"
+msgstr "Зберегти поточний проєкт у файл"
msgid "Save Project as"
-msgstr "Зберегти проект як"
+msgstr "Зберегти проєкт як"
msgid "Shift+"
msgstr "Shift+"
msgid "Save current project as"
-msgstr "Зберегти поточний проект як"
+msgstr "Зберегти поточний проєкт як"
msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF"
msgstr "Імпорт 3MF/STL/STEP/SVG/OBJ/AMF"
@@ -4721,7 +4721,7 @@ msgid "Export current sliced file"
msgstr "Експорт поточного нарізаного файлу"
msgid "Export all plate sliced file"
-msgstr "Експортувати весь файл нарізки"
+msgstr "Експортуйте файл нарізки всіх пластин"
msgid "Export G-code"
msgstr "Експорт G-коду"
@@ -4781,10 +4781,10 @@ msgid "Clone copies of selections"
msgstr "Клонувати копії вибраних об'єктів"
msgid "Duplicate Current Plate"
-msgstr ""
+msgstr "Дублювати поточну пластину"
msgid "Duplicate the current plate"
-msgstr ""
+msgstr "Дублювати поточну пластину"
msgid "Select all"
msgstr "Вибрати все"
@@ -4913,7 +4913,7 @@ msgid "Re&load from Disk"
msgstr "Перезавантажити з диска"
msgid "Reload the plater from disk"
-msgstr "Перезавантажити планшет із диска"
+msgstr "Перезавантажити пластину з диска"
msgid "Export &Toolpaths as OBJ"
msgstr "Експорт траєкторій як OBJ"
@@ -5272,7 +5272,7 @@ msgstr ""
"Заголовок: %s\n"
msgid "Download waiting..."
-msgstr "Чекання завантаження..."
+msgstr "Очікування завантаження..."
msgid "Play"
msgstr "Відтворити"
@@ -5832,14 +5832,14 @@ msgid "Sensitivity of pausing is"
msgstr "Чутливість паузи"
msgid "Enable detection of build plate position"
-msgstr "Увімкнути визначення положення робочого столу"
+msgstr "Увімкнути визначення положення робочої пластини"
msgid ""
"The localization tag of build plate is detected, and printing is paused if "
"the tag is not in predefined range."
msgstr ""
-"Виявлено тег локалізації робочої пластини, і друк припиняється, якщо\n"
-"тег не знаходиться в певному діапазоні."
+"Виявлено тег локалізації робочої пластини, і друк припиняється, якщо тег не "
+"знаходиться в певному діапазоні."
msgid "First Layer Inspection"
msgstr "Перевірка першого шару"
@@ -5893,7 +5893,7 @@ msgid "Material settings"
msgstr ""
msgid "Remove current plate (if not last one)"
-msgstr "Видалити поточну пластину (якщо вона не є остання)"
+msgstr "Видалити поточну пластину (якщо вона не остання)"
msgid "Auto orient objects on current plate"
msgstr "Автоматичне орієнтування об'єктів на поточній пластині"
@@ -5905,13 +5905,13 @@ msgid "Unlock current plate"
msgstr "Розблокувати поточну пластину"
msgid "Lock current plate"
-msgstr "Блокування поточної пластини"
+msgstr "Блокувати поточну пластину"
msgid "Edit current plate name"
-msgstr "Редагувати поточну назву пластини"
+msgstr "Редагувати назву поточної пластини"
msgid "Move plate to the front"
-msgstr ""
+msgstr "Перемістити пластину на перед"
msgid "Customize current plate"
msgstr "Налаштувати поточну пластину"
@@ -5969,7 +5969,7 @@ msgid "Set filaments to use"
msgstr "Встановіть нитки для використання"
msgid "Search plate, object and part."
-msgstr "Пошук плити, об’єкта і деталі."
+msgstr "Пошук пластини, об’єкта і деталі."
msgid "Pellets"
msgstr ""
@@ -6305,7 +6305,7 @@ msgstr ""
"Ви можете зберегти змінені пресети у новому проекті або відмовитися від них"
msgid "Creating a new project"
-msgstr "Створення нового проекту"
+msgstr "Створення нового проєкту"
msgid "Load project"
msgstr "Завантажити проект"
@@ -6477,7 +6477,8 @@ msgid "Private protection"
msgstr "Приватний захист"
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
-msgstr "Чи готовий принтер? Чи є стіл для друку на місці, чистий і порожній?"
+msgstr ""
+"Чи готовий принтер? Чи на місці поверхня для друку, вона чиста і порожня?"
msgid "Upload and Print"
msgstr "Завантажити і друкувати"
@@ -6780,10 +6781,10 @@ msgstr ""
"одночасно та керувати декількома пристроями."
msgid "Auto arrange plate after cloning"
-msgstr ""
+msgstr "Авто орієнтування пластини після клонування"
msgid "Auto arrange plate after object cloning"
-msgstr ""
+msgstr "Авто орієнтування пластини після клонування об'єкту"
msgid "Network"
msgstr "Мережа"
@@ -7051,10 +7052,10 @@ msgid "Same as Global Bed Type"
msgstr "Те ж, що й глобальний тип столу"
msgid "By Layer"
-msgstr "За шаром"
+msgstr "Пошарово"
msgid "By Object"
-msgstr "По об'єкту"
+msgstr "Пооб'єктно"
msgid "Accept"
msgstr "Приймати"
@@ -7181,22 +7182,22 @@ msgid "Busy"
msgstr "Зайнятий"
msgid "Bambu Cool Plate"
-msgstr "Холодний стіл"
+msgstr "Bambu Холодна Пластина"
msgid "PLA Plate"
-msgstr "PLA Plate"
+msgstr "PLA Пластина"
msgid "Bambu Engineering Plate"
-msgstr "Інженерний стіл"
+msgstr "Bambu Інженерна Пластина"
msgid "Bambu Smooth PEI Plate"
-msgstr "Bambu Smooth PEI пластина"
+msgstr "Bambu Гладка PEI Пластина"
msgid "High temperature Plate"
-msgstr "High temperature Plate"
+msgstr "Високотемпературна Пластина"
msgid "Bambu Textured PEI Plate"
-msgstr "Текстурована пластина PEI з текстурою Bambu"
+msgstr "Bambu Текстурована PEI пластина"
msgid "Send print job to"
msgstr "Надіслати завдання на друк на"
@@ -7393,8 +7394,8 @@ msgid ""
"Caution to use! Flow calibration on Textured PEI Plate may fail due to the "
"scattered surface."
msgstr ""
-"Увага! Калібрування потоку на Textured PEI Plate може не вдалося через "
-"розсіяну поверхню."
+"Використовуйте обережно! Калібрування потоку на пластині Текстурованій PEI "
+"Пластині може бути невдалим через розсіяну поверхню."
msgid "Automatic flow calibration using Micro Lidar"
msgstr "Автоматична калібрування потоку за допомогою мікро лідару"
@@ -7704,8 +7705,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"При записі таймлапсу без інструментальної головки рекомендується додати "
"“Timelapse Wipe Tower” \n"
@@ -7731,7 +7732,7 @@ msgid "Bridging"
msgstr "Створення мостів"
msgid "Overhangs"
-msgstr "Звисання"
+msgstr "Нависання"
msgid "Walls"
msgstr "Стінки"
@@ -7746,16 +7747,16 @@ msgid "Other layers speed"
msgstr "Швидкість інших шарів"
msgid "Overhang speed"
-msgstr "Швидкість звису"
+msgstr "Швидкість нависань"
msgid ""
"This is the speed for various overhang degrees. Overhang degrees are "
"expressed as a percentage of line width. 0 speed means no slowing down for "
"the overhang degree range and wall speed is used"
msgstr ""
-"Це швидкість для різних градусів звису. Ступені звису виражаються в "
+"Це швидкість для різних градусів нависання. Ступені нависання виражається у "
"відсотках від ширини лінії. 0 швидкість означає відсутність уповільнення для "
-"діапазону ступенів звису і використовується швидкість друку стінок"
+"діапазону ступенів нависання і використовується швидкість друку стінок"
msgid "Bridge"
msgstr "Міст"
@@ -7794,7 +7795,7 @@ msgid "Ooze prevention"
msgstr ""
msgid "Skirt"
-msgstr "Плінтус"
+msgstr "Спідниця"
msgid "Special mode"
msgstr "Спеціальний режим"
@@ -7851,7 +7852,7 @@ msgstr ""
"відсутність установки"
msgid "Flow ratio and Pressure Advance"
-msgstr ""
+msgstr "Коефіцієнт потоку та Випередження тиску"
msgid "Print chamber temperature"
msgstr "Температура в камері друку"
@@ -7866,7 +7867,7 @@ msgid "Nozzle temperature when printing"
msgstr "Температура сопла під час друку"
msgid "Cool plate"
-msgstr "Холодний стіл"
+msgstr "Холодна пластина"
msgid ""
"Bed temperature when cool plate is installed. Value 0 means the filament "
@@ -7877,7 +7878,7 @@ msgstr ""
"не підтримує друк на Холодному столі"
msgid "Textured Cool plate"
-msgstr ""
+msgstr "Текстурована Холодна Пластина"
msgid ""
"Bed temperature when cool plate is installed. Value 0 means the filament "
@@ -7885,7 +7886,7 @@ msgid ""
msgstr ""
msgid "Engineering plate"
-msgstr "Інженерний стіл"
+msgstr "Інженерна пластина"
msgid ""
"Bed temperature when engineering plate is installed. Value 0 means the "
@@ -7907,14 +7908,14 @@ msgstr ""
"пластині / Високотемпературній пластині"
msgid "Textured PEI Plate"
-msgstr "Текстурована пластина PEI"
+msgstr "Текстурована PEI пластина"
msgid ""
"Bed temperature when Textured PEI Plate is installed. Value 0 means the "
"filament does not support to print on the Textured PEI Plate"
msgstr ""
-"Температура шару під час встановлення плити Textured PEI Plate. Значення 0 "
-"означає Філамент не підтримує друк на текстурованій пластині PEI"
+"Температура шару під час встановлення пластини Текстурована PEI пластина. "
+"Значення 0 означає Філамент не підтримує друк на Текстурованій PEI пластині"
msgid "Volumetric speed limitation"
msgstr "Об'ємне обмеження швидкості"
@@ -8754,7 +8755,7 @@ msgid "Gizmo cut"
msgstr "Виріз Gizmo"
msgid "Gizmo Place face on bed"
-msgstr "Gizmo Покладіть обличчя на стіл"
+msgstr "Gizmo Покласти грань на стіл"
msgid "Gizmo SLA support points"
msgstr "Точки підтримки Gizmo SL"
@@ -9548,7 +9549,7 @@ msgid ""
msgstr ""
msgid "Generating skirt & brim"
-msgstr "Створення спідниці та кайми"
+msgstr "Генерація спідниці та кайми"
msgid "Exporting G-code"
msgstr "Експорт G-code"
@@ -9579,7 +9580,7 @@ msgid "Bed custom texture"
msgstr "Текстура користувача столу"
msgid "Bed custom model"
-msgstr "Стіл індивідуальної моделі"
+msgstr "Індивідуальна модель стола"
msgid "Elephant foot compensation"
msgstr "Компенсація слонової ноги"
@@ -9590,7 +9591,7 @@ msgid ""
msgstr "Усадка початкового шару на столі для компенсації ефекту слонової ноги"
msgid "Elephant foot compensation layers"
-msgstr "Шари компенсації слонячої стопи"
+msgstr "Шари компенсації слонової стопи"
msgid ""
"The number of layers on which the elephant foot compensation will be active. "
@@ -9822,16 +9823,16 @@ msgid "Bed types supported by the printer"
msgstr "Типи ліжок, які підтримує принтер"
msgid "Smooth Cool Plate"
-msgstr ""
+msgstr "Гладка Холодна Пластина"
msgid "Engineering Plate"
-msgstr "Інженерна пластина"
+msgstr "Інженерна Пластина"
msgid "Smooth High Temp Plate"
-msgstr ""
+msgstr "Гладка Високотемпературна Пластина"
msgid "Textured Cool Plate"
-msgstr ""
+msgstr "Текстурована Холодна Пластина"
msgid "First layer print sequence"
msgstr "Послідовність друку першого шару"
@@ -9917,17 +9918,17 @@ msgid "Nowhere"
msgstr "Ніде"
msgid "Force cooling for overhang and bridge"
-msgstr "Силове охолодження для звису та мосту"
+msgstr "Примусове охолодження для нависань та мостів"
msgid ""
"Enable this option to optimize part cooling fan speed for overhang and "
"bridge to get better cooling"
msgstr ""
"Увімкніть цю опцію, щоб оптимізувати швидкість вентилятора охолодженнядеталі "
-"для звису та мосту, щоб покращити охолодження"
+"для нависання та мосту, щоб покращити охолодження"
msgid "Fan speed for overhang"
-msgstr "Швидкість вентилятора для звису"
+msgstr "Швидкість вентилятора для нависань"
msgid ""
"Force part cooling fan to be this speed when printing bridge or overhang "
@@ -9940,7 +9941,7 @@ msgstr ""
"деталей"
msgid "Cooling overhang threshold"
-msgstr "Поріг охолоджувального звису"
+msgstr "Поріг нависання для охолодження"
#, c-format
msgid ""
@@ -9949,11 +9950,11 @@ msgid ""
"of the line without support from lower layer. 0% means forcing cooling for "
"all outer wall no matter how much overhang degree"
msgstr ""
-"Коли ступінь звису друкарської деталі перевищує це значення, примусово "
+"Коли ступінь нависання друкарської деталі перевищує це значення, примусово "
"Встановіть вентилятор охолодження на певну швидкість. Виражається в "
"відсотках, що вказують на ширину лінії без опори від нижнього шару. .0%% "
"означає примусове охолодження всього зовнішньої стінки незалежно від ступеня "
-"звису"
+"нависання"
msgid "Bridge infill direction"
msgstr "Напрямок заповнення мосту"
@@ -9976,7 +9977,7 @@ msgstr ""
"замовчуванням - 100%."
msgid "Bridge flow ratio"
-msgstr "Потік мосту"
+msgstr "Коефіцієнт потоку мостів"
msgid ""
"Decrease this value slightly(for example 0.9) to reduce the amount of "
@@ -9987,7 +9988,7 @@ msgid ""
msgstr ""
msgid "Internal bridge flow ratio"
-msgstr "Коефіцієнт потоку для внутрішніх мостів"
+msgstr "Коефіцієнт потоку внутрішніх мостів"
msgid ""
"This value governs the thickness of the internal bridge layer. This is the "
@@ -10088,10 +10089,10 @@ msgstr ""
"ділянками, де неможливо закріпити мости. "
msgid "Reverse on even"
-msgstr ""
+msgstr "Зміна напрямку на парних шарах"
msgid "Overhang reversal"
-msgstr "Реверс звису"
+msgstr "Розворот нависань"
msgid ""
"Extrude perimeters that have a part over an overhang in the reverse "
@@ -10146,7 +10147,7 @@ msgid "Reverse threshold"
msgstr "Зворотний поріг"
msgid "Overhang reversal threshold"
-msgstr "Поріг розвороту звису"
+msgstr "Поріг розвороту нависань"
#, no-c-format, no-boost-format
msgid ""
@@ -10164,11 +10165,11 @@ msgid "Enable this option to use classic mode"
msgstr "Увімкнути цей параметр для використання класичного режиму"
msgid "Slow down for overhang"
-msgstr "Уповільнення звису"
+msgstr "Сповільнюватись для нависань"
msgid "Enable this option to slow printing down for different overhang degree"
msgstr ""
-"Увімкнути цей параметр для уповільнення друку при різних ступенях звису"
+"Увімкнути цей параметр для уповільнення друку при різних кутів нависань"
msgid "Slow down for curled perimeters"
msgstr "Уповільнення для нависаючих периметрів"
@@ -10253,7 +10254,7 @@ msgid "Only draw brim over the sharp edges of the model."
msgstr "Робить кайму вушка лише на гострих краях моделі."
msgid "Brim ear max angle"
-msgstr "Максимальний кут для кайми вушка"
+msgstr "Максимальний кут вушка кайми"
msgid ""
"Maximum angle to let a brim ear appear. \n"
@@ -10265,7 +10266,7 @@ msgstr ""
"Якщо встановлено ~180, то край буде створено на всіх ділянках, окрім прямих."
msgid "Brim ear detection radius"
-msgstr "Кайма вушка радіус виявлення"
+msgstr "Радіус виявлення вушка кайма"
msgid ""
"The geometry will be decimated before detecting sharp angles. This parameter "
@@ -10295,10 +10296,10 @@ msgid "Print sequence, layer by layer or object by object"
msgstr "Послідовність друку, шар за шаром або об'єкт за об'єктом"
msgid "By layer"
-msgstr "За шаром"
+msgstr "Пошарово"
msgid "By object"
-msgstr "По об'єкту"
+msgstr "Пооб'єктно"
msgid "Intra-layer order"
msgstr "Внутрішній порядок шарів"
@@ -10307,10 +10308,10 @@ msgid "Print order within a single layer"
msgstr "Друк замовлення в один шар"
msgid "As object list"
-msgstr "Як перелік об'єктів"
+msgstr "За порядком у списку"
msgid "Slow printing down for better layer cooling"
-msgstr "Повільний друк для кращого охолодження шару"
+msgstr "Сповільнювати друк для кращого охолодження шару"
msgid ""
"Enable this option to slow printing speed down to make the final layer time "
@@ -10369,7 +10370,7 @@ msgid "Speed of exhaust fan after printing completes"
msgstr "Швидкість витяжного вентилятора після завершення друку"
msgid "No cooling for the first"
-msgstr "Немає охолодження для першого шару"
+msgstr "Не охолоджувати перші"
msgid ""
"Close all cooling fan for the first certain layers. Cooling fan of the first "
@@ -10414,7 +10415,7 @@ msgstr ""
"сопла, краще вимкнути її."
msgid "Filter out small internal bridges (beta)"
-msgstr ""
+msgstr "Відфільтровувати малі Внутрішні мости (бета)"
msgid ""
"This option can help reducing pillowing on top surfaces in heavily slanted "
@@ -10446,13 +10447,13 @@ msgid ""
msgstr ""
msgid "Filter"
-msgstr ""
+msgstr "Фільтрувати"
msgid "Limited filtering"
-msgstr "Обмежена фільтрація"
+msgstr "Обмежене фільтрування"
msgid "No filtering"
-msgstr "Без фільтрації"
+msgstr "Без фільтрування"
msgid "Max bridge length"
msgstr "Максимальна довжина мосту"
@@ -10834,15 +10835,15 @@ msgid ""
"Enable pressure advance, auto calibration result will be overwritten once "
"enabled."
msgstr ""
-"Включити випередження тиску, результат автоматичного калібрування "
-"будеперезаписано після увімкнення."
+"Включити випередження тиску, результат автоматичного калібрування буде "
+"перезаписано після увімкнення."
msgid "Pressure advance(Klipper) AKA Linear advance factor(Marlin)"
msgstr ""
-"Підвищення тиску (Klipper) AKA Коефіцієнт лінійного просування (Marlin)"
+"Випередження тиску (Klipper) або Коефіцієнт лінійного випередження (Marlin)"
msgid "Enable adaptive pressure advance (beta)"
-msgstr ""
+msgstr "Увімкнути адаптивне випередження тиску (бета)"
#, no-c-format, no-boost-format
msgid ""
@@ -10867,7 +10868,7 @@ msgid ""
msgstr ""
msgid "Adaptive pressure advance measurements (beta)"
-msgstr ""
+msgstr "Виміри адаптивного випередження тиску (бета)"
#, no-c-format, no-boost-format
msgid ""
@@ -10901,7 +10902,7 @@ msgid ""
msgstr ""
msgid "Enable adaptive pressure advance for overhangs (beta)"
-msgstr ""
+msgstr "Увімкнути адаптивне випередження тиску для нависань (бета)"
msgid ""
"Enable adaptive PA for overhangs as well as when flow changes within the "
@@ -10911,7 +10912,7 @@ msgid ""
msgstr ""
msgid "Pressure advance for bridges"
-msgstr ""
+msgstr "Випередження тиску для мостів"
msgid ""
"Pressure advance value for bridges. Set to 0 to disable. \n"
@@ -10930,7 +10931,7 @@ msgstr ""
"виражено у %, вона буде розрахована за діаметром сопла."
msgid "Keep fan always on"
-msgstr "Тримайте вентилятор завжди увімкненим"
+msgstr "Тримати вентилятор завжди увімкненим"
msgid ""
"If enable this setting, part cooling fan will never be stopped and will run "
@@ -11052,7 +11053,7 @@ msgid ""
msgstr ""
msgid "Shrinkage (XY)"
-msgstr ""
+msgstr "Усадка (XY)"
#, no-c-format, no-boost-format
msgid ""
@@ -11070,7 +11071,7 @@ msgstr ""
"виконується після перевірки."
msgid "Shrinkage (Z)"
-msgstr ""
+msgstr "Усадка (Z)"
#, no-c-format, no-boost-format
msgid ""
@@ -11228,7 +11229,7 @@ msgid "The material type of filament"
msgstr "Тип матеріалу філаменту"
msgid "Soluble material"
-msgstr "Розчинний філамент"
+msgstr "Розчинний матеріал"
msgid ""
"Soluble material is commonly used to print support and support interface"
@@ -11260,7 +11261,7 @@ msgid "Filament price. For statistics only"
msgstr "Ціна філаменту. Тільки для статистики"
msgid "money/kg"
-msgstr "р/кг"
+msgstr "грн/кг"
msgid "Vendor"
msgstr "Виробник"
@@ -11504,7 +11505,7 @@ msgstr ""
"діаметру сопла."
msgid "Initial layer height"
-msgstr "Початкова висота шару"
+msgstr "Висота початкового шару"
msgid ""
"Height of initial layer. Making initial layer height to be thick slightly "
@@ -11517,7 +11518,7 @@ msgid "Speed of initial layer except the solid infill part"
msgstr "Швидкість першого шару, за винятком суцільної заповнювальної частини"
msgid "Initial layer infill"
-msgstr "Початкове заповнення шару"
+msgstr "Заповнення початкового шару"
msgid "Speed of solid infill part of initial layer"
msgstr "Швидкість суцільної заповнювальної частини вихідного шару"
@@ -11550,10 +11551,10 @@ msgstr "Повна швидкість вентилятора на шарі"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"Швидкість вентилятора лінійно збільшується від нуля на "
"рівні«close_fan_the_first_x_layers» до максимуму на рівні "
@@ -11597,7 +11598,7 @@ msgid "All walls"
msgstr "Всі периметри"
msgid "Fuzzy skin thickness"
-msgstr "Нечітка товщина шкіри"
+msgstr "Товщина Шорсткої Поверхні"
msgid ""
"The width within which to jitter. It's advised to be below outer wall line "
@@ -11607,7 +11608,7 @@ msgstr ""
"зовнішнього периметра"
msgid "Fuzzy skin point distance"
-msgstr "Нечітка відстань від точки шкіри"
+msgstr "Відстань між точками Шорсткої Поверхні"
msgid ""
"The average distance between the random points introduced on each line "
@@ -11616,10 +11617,10 @@ msgstr ""
"Середня відстань між випадковими точками, введеними на кожному відрізкулінії"
msgid "Apply fuzzy skin to first layer"
-msgstr "Нанести нечітку оболочку на перший шар"
+msgstr "Застосувати Шорстку Поверхню до першого шару"
msgid "Whether to apply fuzzy skin on the first layer"
-msgstr "Чи потрібно наносити нечітку оболочку на перший шар"
+msgstr "Чи потрібно застосовувати Шорстку Поверхню до першого шару"
msgid "Filter out tiny gaps"
msgstr "Відфільтрувати крихітні зазори"
@@ -11785,7 +11786,7 @@ msgid "Only overhangs"
msgstr "Тільки нависання"
msgid "Will only take into account the delay for the cooling of overhangs."
-msgstr "Враховуйте лише затримку охолодження звисів."
+msgstr "Буде враховуватись лише затримка охолодження нависань."
msgid "Fan kick-start time"
msgstr "Час запуску вентилятора"
@@ -11918,7 +11919,7 @@ msgid ""
msgstr ""
msgid "Filament to print internal sparse infill."
-msgstr "Філамент для друку внутрішнього заповнення."
+msgstr "Філамент для друку внутрішнього часткового заповнення."
msgid ""
"Line width of internal sparse infill. If expressed as a %, it will be "
@@ -11961,7 +11962,7 @@ msgstr ""
"лінії заповнення"
msgid "Speed of internal sparse infill"
-msgstr "Швидкість внутрішнього заповнення"
+msgstr "Швидкість внутрішнього часткового заповнення"
msgid "Interface shells"
msgstr "Інтерфейсні оболонки"
@@ -12037,7 +12038,7 @@ msgid ""
msgstr ""
msgid "Ironing Type"
-msgstr "Тип Розглажування"
+msgstr "Тип розглажування"
msgid ""
"Ironing is using small flow to print on same height of surface again to make "
@@ -12549,8 +12550,8 @@ msgid ""
"Detect the overhang percentage relative to line width and use different "
"speed to print. For 100%% overhang, bridge speed is used."
msgstr ""
-"Визначте відсоток звису щодо ширини лінії та використовуйте для друку іншу "
-"швидкість. Для 100%% -ного звису використовується швидкість моста."
+"Визначити відсоток нависань щодо ширини лінії та використовувати для друку "
+"іншу швидкість. Для 100%% -ного нависання використовується швидкість моста."
msgid "Filament to print walls"
msgstr ""
@@ -12690,6 +12691,14 @@ msgstr "Втягування при зміні шару"
msgid "Force a retraction when changes layer"
msgstr "Примусове втягування при зміні шару"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "Довжина втягування"
@@ -12873,7 +12882,7 @@ msgstr ""
"Вимкнути генерацію M73: Встановити час друку, що залишився, у кінцевому gcode"
msgid "Seam position"
-msgstr "Положення шва"
+msgstr "Розташування шва"
msgid "The start position to print each part of outer wall"
msgstr "Початкове положення для друку кожної частини зовнішнього периметра"
@@ -12891,7 +12900,7 @@ msgid "Random"
msgstr "Випадковий"
msgid "Staggered inner seams"
-msgstr "Зміщений внутрішній шов"
+msgstr "Зміщувати внутрішній шов"
msgid ""
"This option causes the inner seams to be shifted backwards based on their "
@@ -12950,7 +12959,7 @@ msgstr ""
"шарфом. Значення за замовчуванням - 155°."
msgid "Conditional overhang threshold"
-msgstr "Умовний поріг звису"
+msgstr "Умовний поріг нависань"
#, no-c-format, no-boost-format
msgid ""
@@ -12960,10 +12969,10 @@ msgid ""
"at 40% of the external wall's width. Due to performance considerations, the "
"degree of overhang is estimated."
msgstr ""
-"Ця опція визначає поріг звису для застосування стрічкових швів. Якщо "
+"Ця опція визначає поріг нависання для застосування стрічкових швів. Якщо "
"непідтримувана частина периметра менша за цей поріг, будуть застосовані "
"стрічкові шви. За замовчуванням поріг встановлюється на рівні 40% від ширини "
-"зовнішньої стіни. З міркувань продуктивності оцінюється ступінь звису."
+"зовнішньої стіни. З міркувань продуктивності оцінюється ступінь нависання."
msgid "Scarf joint speed"
msgstr "Швидкість з'єднання шва"
@@ -12989,7 +12998,7 @@ msgstr ""
"внутрішньої стінки. За замовчуванням встановлено значення 100%."
msgid "Scarf joint flow ratio"
-msgstr "Коефіцієнт пропускної здатності шарфового шва"
+msgstr "Коефіцієнт потоку шарфового шва"
msgid "This factor affects the amount of material for scarf joints."
msgstr "Цей фактор впливає на кількість матеріалу для з'єднання швів."
@@ -13034,7 +13043,7 @@ msgid "Use scarf joint for inner walls as well."
msgstr "Використовувати з’єднання з шарфом також для внутрішніх стін."
msgid "Role base wipe speed"
-msgstr "Базова швидкість очищення ролей"
+msgstr "Швидкість очищення залежно від типу"
msgid ""
"The wipe speed is determined by the speed of the current extrusion role.e.g. "
@@ -13047,7 +13056,7 @@ msgstr ""
"для діїочищення."
msgid "Wipe on loops"
-msgstr "Розгладжування шва"
+msgstr "Очищати при завершенні контуру"
msgid ""
"To minimize the visibility of the seam in a closed loop extrusion, a small "
@@ -13057,7 +13066,7 @@ msgstr ""
"Невеликий рух усередину виконується до виходу екструдера з контуру."
msgid "Wipe before external loop"
-msgstr "Протирання перед зовнішньою стінкою"
+msgstr "Очищати перед зовнішнім контуром"
msgid ""
"To minimize visibility of potential overextrusion at the start of an "
@@ -13095,13 +13104,13 @@ msgstr ""
"За замовчуванням для цього параметра - 80%"
msgid "Skirt distance"
-msgstr "Відстань між спідницею/каймою"
+msgstr "Відступ спідниці"
msgid "Distance from skirt to brim or object"
msgstr "Відстань між спідницею/каймою або моделлю"
msgid "Skirt start point"
-msgstr ""
+msgstr "Початкова точка спідниці"
msgid ""
"Angle from the object center to skirt start point. Zero is the most right "
@@ -13115,7 +13124,7 @@ msgid "How many layers of skirt. Usually only one layer"
msgstr "Скільки шарів спідниці. Зазвичай лише один шар"
msgid "Draft shield"
-msgstr "Чорновий щит"
+msgstr "Захисний бар’єр"
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and "
@@ -13136,7 +13145,7 @@ msgid "Enabled"
msgstr "Увімкнуто"
msgid "Skirt type"
-msgstr ""
+msgstr "Тип спідниці"
msgid ""
"Combined - single skirt for all objects, Per object - individual object "
@@ -13144,16 +13153,16 @@ msgid ""
msgstr ""
msgid "Combined"
-msgstr ""
+msgstr "Об'єднана"
msgid "Per object"
-msgstr ""
+msgstr "Роздільна"
msgid "Skirt loops"
-msgstr "Спідниця навколо моделі"
+msgstr "Кількість контурів спідниці"
msgid "Number of loops for the skirt. Zero means disabling skirt"
-msgstr "Кількість петель для спідниці. Нуль означає відключення спідниці"
+msgstr "Кількість контурів для спідниці. Нуль означає відключення спідниці"
msgid "Skirt speed"
msgstr "Швидкість спідниці"
@@ -13185,20 +13194,20 @@ msgstr ""
"шарів"
msgid "Minimum sparse infill threshold"
-msgstr "Мінімальний поріг заповнення"
+msgstr "Мінімальний поріг часткового заповнення"
msgid ""
"Sparse infill area which is smaller than threshold value is replaced by "
"internal solid infill"
msgstr ""
-"Площа заповнення, яка менша за порогове значення, замінюється внутрішнім "
-"суцільним заповненням"
+"Площа часткового заповнення, яка менша за порогове значення, замінюється "
+"внутрішнім суцільним заповненням"
msgid "Solid infill"
-msgstr ""
+msgstr "Суцільне заповнення"
msgid "Filament to print solid infill"
-msgstr ""
+msgstr "Філамент для друку суцільного заповнення"
msgid ""
"Line width of internal solid infill. If expressed as a %, it will be "
@@ -13274,7 +13283,7 @@ msgid ""
msgstr ""
msgid "Preheat time"
-msgstr ""
+msgstr "Час підігріву"
msgid ""
"To reduce the waiting time after tool change, Orca can preheat the next tool "
@@ -13284,7 +13293,7 @@ msgid ""
msgstr ""
msgid "Preheat steps"
-msgstr ""
+msgstr "Кроки підігріву"
msgid ""
"Insert multiple preheat commands(e.g. M104.1). Only useful for Prusa XL. For "
@@ -13442,7 +13451,7 @@ msgstr ""
"горизонтальному площини."
msgid "On build plate only"
-msgstr "Тільки від столу"
+msgstr "Тільки на робочій пластині"
msgid "Don't create support on model surface, only on build plate"
msgstr "Не створюйте опору на поверхні моделі лише від столу"
@@ -13609,10 +13618,10 @@ msgstr ""
"об'єкта.\n"
"Для підтримок органічний, більш агресивно з'єднує гілки та економить багато "
"матеріалу (за замовчуванням органічний), тоді як гібридний стиль створить "
-"структуру, схожу на звичайну опору під великими пласкими звисами."
+"структуру, схожу на звичайну опору під великими пласкими нависаннями."
msgid "Default (Grid/Organic"
-msgstr ""
+msgstr "За замовчуванням (Сітка/Органічна)"
msgid "Snug"
msgstr "Обережний"
@@ -13647,7 +13656,7 @@ msgstr "Кут порога"
msgid ""
"Support will be generated for overhangs whose slope angle is below the "
"threshold."
-msgstr "Буде створена опора для звисів з кутом нахилу нижче порога."
+msgstr "Буде створена опора для нависань з кутом нахилу нижче порогу."
msgid "Tree support branch angle"
msgstr "Кут гілки опори дерева"
@@ -13657,9 +13666,9 @@ msgid ""
"tree support allowed to make.If the angle is increased, the branches can be "
"printed more horizontally, allowing them to reach farther."
msgstr ""
-"Цей параметр визначає максимальний кут звису, який допускається для Гілки "
-"підтримки дерева. Якщо кут збільшено, гілки можуть друкуватись "
-"більшегоризонтально, дозволяючи їм досягати більшої відстані."
+"Цей параметр визначає максимальний кут нависань, який допускається для гілки "
+"деревоподібної підтримки. Якщо кут збільшено, гілки можуть друкуватись більш "
+"горизонтально, дозволяючи їм досягати більшої відстані."
msgid "Preferred Branch Angle"
msgstr "Бажаний кут повороту гілки"
@@ -13693,7 +13702,7 @@ msgid ""
"needed."
msgstr ""
"Регулює щільність опорної структури, яка використовується для створення "
-"кінчиків гілок. Вище значення призводить до кращих звисів, але опори важче "
+"кінчиків гілок. Вище значення призводить до кращих нависань, але опори важче "
"видаляти, тому рекомендується увімкнути верхні опорні інтерфейси замість "
"високого значення щільності гілок, якщо потрібні щільні інтерфейси."
@@ -13785,8 +13794,8 @@ msgstr "Увімкнути контроль температури"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -13918,9 +13927,9 @@ msgstr ""
"Залежно від тривалості операції витирання, швидкості та тривалості "
"втягування екструдера/нитки, може знадобитися рух накату для нитки. \n"
"\n"
-"Якщо встановити значення у параметрі \"Кількість втягування перед витиранням"
-"\" нижче, надлишкове втягування буде виконано перед витиранням, інакше воно "
-"буде виконано після нього."
+"Якщо встановити значення у параметрі \"Кількість втягування перед "
+"витиранням\" нижче, надлишкове втягування буде виконано перед витиранням, "
+"інакше воно буде виконано після нього."
msgid ""
"The wiping tower can be used to clean up the residue on the nozzle and "
@@ -14068,7 +14077,8 @@ msgid "Maximal bridging distance"
msgstr "Максимальна мостова відстань"
msgid "Maximal distance between supports on sparse infill sections."
-msgstr "Максимальна відстань між підтримками на рідкісних ділянках заповнення."
+msgstr ""
+"Максимальна відстань між підтримками на ділянках часткового заповнення."
msgid "Wipe tower purge lines spacing"
msgstr "Протерти відстань між лініями продувки башти"
@@ -14077,7 +14087,7 @@ msgid "Spacing of purge lines on the wipe tower."
msgstr "Відстань між лініями продувки на протиральній башті."
msgid "Extra flow for purging"
-msgstr ""
+msgstr "Додатковий потік для очищення"
msgid ""
"Extra flow used for the purging lines on the wipe tower. This makes the "
@@ -14086,7 +14096,7 @@ msgid ""
msgstr ""
msgid "Idle temperature"
-msgstr ""
+msgstr "Температура очікування"
msgid ""
"Nozzle temperature when the tool is currently not used in multi-tool setups."
@@ -14433,7 +14443,7 @@ msgid "Currently planned extra extruder priming after de-retraction."
msgstr "В даний час планується додаткове ґрунтування екструдера після накату."
msgid "Absolute E position"
-msgstr ""
+msgstr "Абсолютна позиція E"
msgid ""
"Current position of the extruder axis. Only used with absolute extruder "
@@ -14654,7 +14664,7 @@ msgid "Name of the physical printer used for slicing."
msgstr "Назва фізичного принтера, який використовується для нарізки."
msgid "Number of extruders"
-msgstr ""
+msgstr "Кількість екструдерів"
msgid ""
"Total number of extruders, regardless of whether they are used in the "
@@ -14753,7 +14763,7 @@ msgid "Support: generate toolpath at layer %d"
msgstr "Підтримка: створення траєкторії інструмента на шарі %d"
msgid "Support: detect overhangs"
-msgstr "Підтримка: виявлення звисів"
+msgstr "Підтримка: виявляти нависання"
msgid "Support: generate contact points"
msgstr "Підтримка: створення точок контакту"
@@ -15194,14 +15204,13 @@ msgid "Record Factor"
msgstr "Фактор запису"
msgid "We found the best flow ratio for you"
-msgstr "Ми знайшли найкраще співвідношення потоку для вас"
+msgstr "Ми знайшли найкраще співвідношення коефіцієнту потоку для вас"
msgid "Flow Ratio"
-msgstr "Співвідношення потоку"
+msgstr "Коефіцієнт потоку"
msgid "Please input a valid value (0.0 < flow ratio < 2.0)"
-msgstr ""
-"Будь ласка, введіть дійсне значення (0.0 < співвідношення потоку < 2.0)"
+msgstr "Будь ласка, введіть дійсне значення (0.0 < коефіцієнт потоку < 2.0)"
msgid "Please enter the name of the preset you want to save."
msgstr "Будь ласка, введіть назву шаблону, який ви хочете зберегти."
@@ -15223,7 +15232,7 @@ msgstr "Пропустити калібрування2"
#, c-format, boost-format
msgid "flow ratio : %s "
-msgstr "співвідношення потоку : %s "
+msgstr "коєфіцієнт потоку : %s "
msgid "Please choose a block with smoothest top surface"
msgstr "Будь ласка, виберіть блок з найгладшою верхньою поверхнею"
@@ -15243,7 +15252,7 @@ msgid "Complete Calibration"
msgstr "Повне калібрування"
msgid "Fine Calibration based on flow ratio"
-msgstr "Точне калібрування на основі співвідношення потоку"
+msgstr "Точне калібрування на основі коефіцієнту потоку"
msgid "Title"
msgstr "Назва"
@@ -15252,14 +15261,14 @@ msgid ""
"A test model will be printed. Please clear the build plate and place it back "
"to the hot bed before calibration."
msgstr ""
-"Буде надруковано тестову модель. Будь ласка, очистіть стільцевий стіл та "
-"поверніть його на гарячу ліжко перед калібруванням."
+"Буде надруковано тестову модель. Будь ласка, очистіть робочу пластину та "
+"поверніть його на гарячий стіл перед калібруванням."
msgid "Printing Parameters"
msgstr "Параметри друку"
msgid "Plate Type"
-msgstr "Тип стільця"
+msgstr "Тип Пластини"
msgid "filament position"
msgstr "положення нитки"
@@ -15770,8 +15779,8 @@ msgstr ""
"Чи бажаєте ви їх перезаписати?"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"Ми б перейменували попередні налаштування на «Вибраний вами серійний "
@@ -16734,7 +16743,7 @@ msgstr ""
"Сендвіч режим\n"
"Чи знаєте ви, що можна використовувати сендвіч-режим (внутрішній-зовнішній-"
"внутрішній), щоб покращити точність і узгодженість шарів, якщо ваша модель "
-"не має дуже крутих звисів?"
+"не має дуже крутих нависань?"
#: resources/data/hints.ini: [hint:Chamber temperature]
msgid ""
@@ -16807,7 +16816,7 @@ msgid ""
msgstr ""
"Reverse on odd\n"
"Чи знали ви, що функція Реверс по непарних периметрах може значно "
-"покращити якість поверхні ваших звисів?"
+"покращити якість поверхні ваших нависань?"
#: resources/data/hints.ini: [hint:Cut Tool]
msgid ""
diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
index 3fdbf3e817..e7afc790b4 100644
--- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
+++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Slic3rPE\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2024-07-28 07:12+0000\n"
"Last-Translator: Handle \n"
"Language-Team: \n"
@@ -4229,7 +4229,7 @@ msgstr "体积:"
msgid "Size:"
msgstr "尺寸:"
-#, c-format, boost-format
+#, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7315,8 +7315,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n"
"右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。"
@@ -9592,7 +9592,6 @@ msgstr ""
"值0表示在每个偶数层上都启用反转。\n"
"当未启用检测悬垂时,此选项将被忽略,反转将在每个偶数层上发生。"
-
msgid "Classic mode"
msgstr "经典模式"
@@ -10878,10 +10877,10 @@ msgstr "满速风扇在"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"风扇速度将从“禁用第一层”的零线性上升到“全风扇速度层”的最大。如果低于“禁用风扇"
"第一层”,则“全风扇速度第一层”将被忽略,在这种情况下,风扇将在“禁用风扇第一"
@@ -11883,6 +11882,14 @@ msgstr "换层时回抽"
msgid "Force a retraction when changes layer"
msgstr "强制在换层时回抽。"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "回抽长度"
@@ -12874,8 +12881,8 @@ msgstr "激活温度控制"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -14713,8 +14720,8 @@ msgstr ""
"你想重写预设吗"
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
"我们将会把预设重命名为“供应商类型名 @ 您选择的打印机”\n"
@@ -16440,8 +16447,8 @@ msgstr ""
#~ msgstr "无稀疏层(实验)"
#~ msgid ""
-#~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
-#~ "\". \n"
+#~ "We would rename the presets as \"Vendor Type Serial @printer you "
+#~ "selected\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr ""
#~ "我们会将预设重命名为“供应商 类型 系列 @您选择的打印机”。\n"
diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
index 40968cd0a8..19599b5f6c 100644
--- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
+++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-10-27 23:05+0800\n"
+"POT-Creation-Date: 2024-12-01 08:07+0100\n"
"PO-Revision-Date: 2023-11-06 14:37+0800\n"
"Last-Translator: ablegods \n"
"Language-Team: \n"
@@ -4362,7 +4362,7 @@ msgstr "體積:"
msgid "Size:"
msgstr "尺寸:"
-#, fuzzy, c-format, boost-format
+#, fuzzy, boost-format
msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)."
@@ -7575,8 +7575,8 @@ msgstr ""
msgid ""
"When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n"
-"by right-click the empty position of build plate and choose \"Add Primitive"
-"\"->\"Timelapse Wipe Tower\"."
+"by right-click the empty position of build plate and choose \"Add "
+"Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"在錄製無工具頭縮時錄影影片時,建議增加“縮時錄影擦拭塔”\n"
"右鍵單擊列印板的空白位置,選擇“新增標準模型”->“縮時錄影擦拭塔”。"
@@ -11216,10 +11216,10 @@ msgstr "滿速風扇在"
msgid ""
"Fan speed will be ramped up linearly from zero at layer "
-"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
-"\". \"full_fan_speed_layer\" will be ignored if lower than "
-"\"close_fan_the_first_x_layers\", in which case the fan will be running at "
-"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
+"\"close_fan_the_first_x_layers\" to maximum at layer "
+"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower "
+"than \"close_fan_the_first_x_layers\", in which case the fan will be running "
+"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr ""
"風扇速度將從“禁用第一層”的零線性上升到“全風扇速度層”的最大。如果低於“禁用風扇"
"第一層”,則“全風扇速度第一層”將被忽略,在這種情況下,風扇將在“禁用風扇第一"
@@ -12237,6 +12237,14 @@ msgstr "換層時回抽"
msgid "Force a retraction when changes layer"
msgstr "強制在換層時回抽。"
+msgid "Retract on top layer"
+msgstr ""
+
+msgid ""
+"Force a retraction on top layer. Disabling could prevent clog on very slow "
+"patterns with small movements, like Hilbert curve"
+msgstr ""
+
msgid "Retraction Length"
msgstr "回抽長度"
@@ -13213,8 +13221,8 @@ msgstr "啟動溫度控制"
msgid ""
"Enable this option for automated chamber temperature control. This option "
-"activates the emitting of an M191 command before the \"machine_start_gcode"
-"\"\n"
+"activates the emitting of an M191 command before the "
+"\"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In "
"addition, it emits an M141 command at the end of the print to turn off the "
"chamber heater, if present. \n"
@@ -15056,8 +15064,8 @@ msgid ""
msgstr ""
msgid ""
-"We would rename the presets as \"Vendor Type Serial @printer you selected"
-"\". \n"
+"We would rename the presets as \"Vendor Type Serial @printer you "
+"selected\". \n"
"To add preset for more printers, Please go to printer selection"
msgstr ""
diff --git a/resources/images/bbl_bed_st_bottom.svg b/resources/images/bbl_bed_st_bottom.svg
new file mode 100644
index 0000000000..68c0c0f594
--- /dev/null
+++ b/resources/images/bbl_bed_st_bottom.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/images/bbl_bed_st_left.svg b/resources/images/bbl_bed_st_left.svg
new file mode 100644
index 0000000000..4a7c10acbe
--- /dev/null
+++ b/resources/images/bbl_bed_st_left.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/images/toolbar_assembly.svg b/resources/images/toolbar_assembly.svg
new file mode 100644
index 0000000000..1c2a025f5e
--- /dev/null
+++ b/resources/images/toolbar_assembly.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/resources/images/toolbar_assembly_dark.svg b/resources/images/toolbar_assembly_dark.svg
new file mode 100644
index 0000000000..f514dcb5cc
--- /dev/null
+++ b/resources/images/toolbar_assembly_dark.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json
index 1c21b4d2b3..32895aecdd 100644
--- a/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.2",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json
index f63ef573d4..97a4e9ed60 100644
--- a/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.25",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json
index 9ad650c1cf..8ce3690f5b 100644
--- a/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json
@@ -12,7 +12,6 @@
"printer_variant": "0.4",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json
index 796c77b3c1..086aff0b7f 100644
--- a/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json
@@ -18,7 +18,6 @@
"printer_variant": "0.6",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json
index 1874ea77db..4533f58efd 100644
--- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.2",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json
index 55534d9eb1..f1d5fb21df 100644
--- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.25",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json
index 353867858c..c6fb4cb472 100644
--- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json
@@ -12,7 +12,6 @@
"printer_variant": "0.4",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json
index 766d3de1aa..3bd775d1c1 100644
--- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json
@@ -18,7 +18,6 @@
"printer_variant": "0.6",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json
index f6c067f96c..e518530c19 100644
--- a/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.2",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json
index c0002ad5ee..3d8db4d9f2 100644
--- a/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json
@@ -15,7 +15,6 @@
"printer_variant": "0.25",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json
index 575550f2d8..6e72eba456 100644
--- a/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json
@@ -12,7 +12,6 @@
"printer_variant": "0.4",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json
index c9f68263c6..cc42f47607 100644
--- a/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json
+++ b/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json
@@ -18,7 +18,6 @@
"printer_variant": "0.6",
"auxiliary_fan": "0",
"bed_exclude_area": [],
- "printer_structure": "i3",
"default_filament_profile": [
"Anker Generic PLA+"
],
diff --git a/resources/profiles/Anker/machine/fdm_machine_common.json b/resources/profiles/Anker/machine/fdm_machine_common.json
index 0dc08da1e3..69fcb91793 100644
--- a/resources/profiles/Anker/machine/fdm_machine_common.json
+++ b/resources/profiles/Anker/machine/fdm_machine_common.json
@@ -16,46 +16,46 @@
],
"silent_mode": "0",
"machine_max_acceleration_e": [
- "10000"
+ "4000"
],
"machine_max_acceleration_extruding": [
- "10000"
+ "6000"
],
"machine_max_acceleration_retracting": [
- "10000"
+ "1000"
],
"machine_max_acceleration_x": [
- "10000"
+ "6000"
],
"machine_max_acceleration_y": [
- "10000"
+ "6000"
],
"machine_max_acceleration_z": [
- "10000"
+ "300"
],
"machine_max_acceleration_travel": [
- "10000"
+ "6000"
],
"machine_max_speed_e": [
- "100"
+ "50"
],
"machine_max_speed_x": [
- "500"
+ "600"
],
"machine_max_speed_y": [
- "500"
+ "600"
],
"machine_max_speed_z": [
- "50"
+ "30"
],
"machine_max_jerk_e": [
"3"
],
"machine_max_jerk_x": [
- "15"
+ "12"
],
"machine_max_jerk_y": [
- "15"
+ "12"
],
"machine_max_jerk_z": [
"0.3"
@@ -70,11 +70,11 @@
"0.32"
],
"min_layer_height": [
- "0.08"
+ "0.05"
],
"printer_settings_id": "",
"retraction_minimum_travel": [
- "1.5"
+ "1"
],
"retract_before_wipe": [
"0%"
@@ -83,10 +83,10 @@
"1"
],
"retraction_length": [
- "3"
+ "0.5"
],
"retract_length_toolchange": [
- "4"
+ "2"
],
"z_hop": [
"0"
@@ -106,4 +106,4 @@
"wipe": [
"1"
]
-}
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/process/fdm_process_anker_fast_common.json b/resources/profiles/Anker/process/fdm_process_anker_fast_common.json
index 2a68dee68f..ca5b0b35b5 100644
--- a/resources/profiles/Anker/process/fdm_process_anker_fast_common.json
+++ b/resources/profiles/Anker/process/fdm_process_anker_fast_common.json
@@ -22,5 +22,12 @@
"travel_speed": "500",
"travel_acceleration": "6000",
"top_surface_speed": "360",
- "top_surface_acceleration": "2500"
+ "top_surface_acceleration": "2500",
+ "default_jerk": "9",
+ "outer_wall_jerk": "9",
+ "inner_wall_jerk": "9",
+ "infill_jerk": "9",
+ "top_surface_jerk": "9",
+ "initial_layer_jerk": "9",
+ "travel_jerk": "10"
}
diff --git a/resources/profiles/Anker/process/fdm_process_common.json b/resources/profiles/Anker/process/fdm_process_common.json
index b95f1c3487..34473ba55e 100644
--- a/resources/profiles/Anker/process/fdm_process_common.json
+++ b/resources/profiles/Anker/process/fdm_process_common.json
@@ -51,13 +51,13 @@
"inner_wall_acceleration": "500",
"bridge_acceleration": "500",
"travel_acceleration": "2500",
- "default_jerk": "15",
- "outer_wall_jerk": "10",
- "inner_wall_jerk": "15",
- "infill_jerk": "15",
- "top_surface_jerk": "12",
- "initial_layer_jerk": "12",
- "travel_jerk": "20",
+ "default_jerk": "8",
+ "outer_wall_jerk": "5",
+ "inner_wall_jerk": "8",
+ "infill_jerk": "9",
+ "top_surface_jerk": "5",
+ "initial_layer_jerk": "8",
+ "travel_jerk": "9",
"enable_support": "0",
"support_type": "normal(auto)",
"support_threshold_angle": "30",
diff --git a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json
index 0c28cba87a..76c221347a 100644
--- a/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json
index 5f94f3e8fe..13884c2625 100644
--- a/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json
index 35745292d2..3febe3b3c5 100644
--- a/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json
index 48c5d85af3..d59311f740 100644
--- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json
index 9e1873775c..bdd93e6fdc 100644
--- a/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json
index 073a4e6b63..0802e64e3b 100644
--- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json
index d6573bf139..ce8d3f9bd9 100644
--- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json
index f619dd5bc9..557d6bc75d 100644
--- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json
index dd7c9fc714..b510830392 100644
--- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json
index 35a958e81b..3eac0335a9 100644
--- a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json
index 49701d0f2e..5ba4c7c387 100644
--- a/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json
index 0808f0b1d0..5493230ccb 100644
--- a/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json
index 83d0a1b842..53059f57d7 100644
--- a/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json
index 9ce20fd9fa..4190d23daa 100644
--- a/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
diff --git a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json
index dfd05c6d22..913402bcaf 100644
--- a/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json
+++ b/resources/profiles/Anycubic/process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json
@@ -162,7 +162,7 @@
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
- "single_extruder_multi_material_priming": "1",
+ "single_extruder_multi_material_priming": "0",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
@@ -289,4 +289,4 @@
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json
index 7da1749deb..356da0b297 100644
--- a/resources/profiles/BBL.json
+++ b/resources/profiles/BBL.json
@@ -1,7 +1,7 @@
{
"name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
- "version": "01.09.00.23",
+ "version": "01.10.00.26",
"force_update": "0",
"description": "the initial version of BBL configurations",
"machine_model_list": [
@@ -674,8 +674,8 @@
"sub_path": "filament/fdm_filament_bvoh.json"
},
{
- "name": "fdm_filament_sbs",
- "sub_path": "filament/fdm_filament_sbs.json"
+ "name": "fdm_filament_sbs",
+ "sub_path": "filament/fdm_filament_sbs.json"
},
{
"name": "Bambu PLA Matte @base",
@@ -738,8 +738,8 @@
"sub_path": "filament/Generic PLA-CF @base.json"
},
{
- "name": "Generic SBS @base",
- "sub_path": "filament/Generic SBS @base.json"
+ "name": "Generic SBS @base",
+ "sub_path": "filament/Generic SBS @base.json"
},
{
"name": "Bambu PLA-CF @base",
@@ -797,6 +797,14 @@
"name": "Bambu TPU 95A HF @base",
"sub_path": "filament/Bambu TPU 95A HF @base.json"
},
+ {
+ "name": "Generic TPU for AMS @base",
+ "sub_path": "filament/Generic TPU for AMS @base.json"
+ },
+ {
+ "name": "Bambu TPU for AMS @base",
+ "sub_path": "filament/Bambu TPU for AMS @base.json"
+ },
{
"name": "Bambu PETG Basic @base",
"sub_path": "filament/Bambu PETG Basic @base.json"
@@ -833,6 +841,22 @@
"name": "Bambu PETG HF @base",
"sub_path": "filament/Bambu PETG HF @base.json"
},
+ {
+ "name": "Fiberon PETG-ESD @base",
+ "sub_path": "filament/Fiberon PETG-ESD @base.json"
+ },
+ {
+ "name": "Fiberon PETG-rCF @base",
+ "sub_path": "filament/Fiberon PETG-rCF @base.json"
+ },
+ {
+ "name": "Fiberon PET-CF @base",
+ "sub_path": "filament/Fiberon PET-CF @base.json"
+ },
+ {
+ "name": "Generic PETG HF @base",
+ "sub_path": "filament/Generic PETG HF @base.json"
+ },
{
"name": "Bambu ABS @base",
"sub_path": "filament/Bambu ABS @base.json"
@@ -877,6 +901,10 @@
"name": "Bambu ASA-Aero @base",
"sub_path": "filament/Bambu ASA-Aero @base.json"
},
+ {
+ "name": "Bambu ASA-CF @base",
+ "sub_path": "filament/Bambu ASA-CF @base.json"
+ },
{
"name": "Generic PVA @base",
"sub_path": "filament/Generic PVA @base.json"
@@ -925,6 +953,22 @@
"name": "Bambu PA6-GF @base",
"sub_path": "filament/Bambu PA6-GF @base.json"
},
+ {
+ "name": "Fiberon PA6-CF @base",
+ "sub_path": "filament/Fiberon PA6-CF @base.json"
+ },
+ {
+ "name": "Fiberon PA6-GF @base",
+ "sub_path": "filament/Fiberon PA6-GF @base.json"
+ },
+ {
+ "name": "Fiberon PA12-CF @base",
+ "sub_path": "filament/Fiberon PA12-CF @base.json"
+ },
+ {
+ "name": "Fiberon PA612-CF @base",
+ "sub_path": "filament/Fiberon PA612-CF @base.json"
+ },
{
"name": "Generic HIPS @base",
"sub_path": "filament/Generic HIPS @base.json"
@@ -1406,8 +1450,8 @@
"sub_path": "filament/Generic PLA-CF @BBL A1.json"
},
{
- "name": "Generic SBS",
- "sub_path": "filament/Generic SBS.json"
+ "name": "Generic SBS",
+ "sub_path": "filament/Generic SBS.json"
},
{
"name": "Bambu PLA-CF @BBL X1C 0.8 nozzle",
@@ -1745,6 +1789,38 @@
"name": "Bambu TPU 95A HF @BBL A1",
"sub_path": "filament/Bambu TPU 95A HF @BBL A1.json"
},
+ {
+ "name": "Generic TPU for AMS @BBL X1C",
+ "sub_path": "filament/Generic TPU for AMS @BBL X1C.json"
+ },
+ {
+ "name": "Generic TPU for AMS @BBL P1P",
+ "sub_path": "filament/Generic TPU for AMS @BBL P1P.json"
+ },
+ {
+ "name": "Generic TPU for AMS @BBL A1",
+ "sub_path": "filament/Generic TPU for AMS @BBL A1.json"
+ },
+ {
+ "name": "Generic TPU for AMS @BBL A1M",
+ "sub_path": "filament/Generic TPU for AMS @BBL A1M.json"
+ },
+ {
+ "name": "Bambu TPU for AMS @BBL X1C",
+ "sub_path": "filament/Bambu TPU for AMS @BBL X1C.json"
+ },
+ {
+ "name": "Bambu TPU for AMS @BBL P1P",
+ "sub_path": "filament/Bambu TPU for AMS @BBL P1P.json"
+ },
+ {
+ "name": "Bambu TPU for AMS @BBL A1",
+ "sub_path": "filament/Bambu TPU for AMS @BBL A1.json"
+ },
+ {
+ "name": "Bambu TPU for AMS @BBL A1M",
+ "sub_path": "filament/Bambu TPU for AMS @BBL A1M.json"
+ },
{
"name": "Bambu PETG Basic @BBL X1C",
"sub_path": "filament/Bambu PETG Basic @BBL X1C.json"
@@ -1945,6 +2021,50 @@
"name": "Generic PCTG @BBL A1M",
"sub_path": "filament/Generic PCTG @BBL A1M.json"
},
+ {
+ "name": "Fiberon PETG-ESD @BBL X1C",
+ "sub_path": "filament/Fiberon PETG-ESD @BBL X1C.json"
+ },
+ {
+ "name": "Fiberon PETG-rCF @BBL X1C",
+ "sub_path": "filament/Fiberon PETG-rCF @BBL X1C.json"
+ },
+ {
+ "name": "Fiberon PET-CF @BBL X1C",
+ "sub_path": "filament/Fiberon PET-CF @BBL X1C.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL X1C",
+ "sub_path": "filament/Generic PETG HF @BBL X1C.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL X1C 0.2 nozzle",
+ "sub_path": "filament/Generic PETG HF @BBL X1C 0.2 nozzle.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL P1P",
+ "sub_path": "filament/Generic PETG HF @BBL P1P.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL P1P 0.2 nozzle",
+ "sub_path": "filament/Generic PETG HF @BBL P1P 0.2 nozzle.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL A1",
+ "sub_path": "filament/Generic PETG HF @BBL A1.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL A1 0.2 nozzle",
+ "sub_path": "filament/Generic PETG HF @BBL A1 0.2 nozzle.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL A1M",
+ "sub_path": "filament/Generic PETG HF @BBL A1M.json"
+ },
+ {
+ "name": "Generic PETG HF @BBL A1M 0.2 nozzle",
+ "sub_path": "filament/Generic PETG HF @BBL A1M 0.2 nozzle.json"
+ },
{
"name": "Bambu ABS @BBL X1C",
"sub_path": "filament/Bambu ABS @BBL X1C.json"
@@ -2173,6 +2293,30 @@
"name": "Bambu ASA-Aero @BBL A1",
"sub_path": "filament/Bambu ASA-Aero @BBL A1.json"
},
+ {
+ "name": "Bambu ASA-CF @BBL X1C",
+ "sub_path": "filament/Bambu ASA-CF @BBL X1C.json"
+ },
+ {
+ "name": "Bambu ASA-CF @BBL X1C 0.6 nozzle",
+ "sub_path": "filament/Bambu ASA-CF @BBL X1C 0.6 nozzle.json"
+ },
+ {
+ "name": "Bambu ASA-CF @BBL P1P",
+ "sub_path": "filament/Bambu ASA-CF @BBL P1P.json"
+ },
+ {
+ "name": "Bambu ASA-CF @BBL P1P 0.6 nozzle",
+ "sub_path": "filament/Bambu ASA-CF @BBL P1P 0.6 nozzle.json"
+ },
+ {
+ "name": "Bambu ASA-CF @BBL A1",
+ "sub_path": "filament/Bambu ASA-CF @BBL A1.json"
+ },
+ {
+ "name": "Bambu ASA-CF @BBL A1 0.6 nozzle",
+ "sub_path": "filament/Bambu ASA-CF @BBL A1 0.6 nozzle.json"
+ },
{
"name": "Generic PVA @0.2 nozzle",
"sub_path": "filament/Generic PVA @0.2 nozzle.json"
@@ -2321,6 +2465,22 @@
"name": "Bambu PA6-GF @BBL A1",
"sub_path": "filament/Bambu PA6-GF @BBL A1.json"
},
+ {
+ "name": "Fiberon PA6-CF @BBL X1C",
+ "sub_path": "filament/Fiberon PA6-CF @BBL X1C.json"
+ },
+ {
+ "name": "Fiberon PA6-GF @BBL X1C",
+ "sub_path": "filament/Fiberon PA6-GF @BBL X1C.json"
+ },
+ {
+ "name": "Fiberon PA12-CF @BBL X1C",
+ "sub_path": "filament/Fiberon PA12-CF @BBL X1C.json"
+ },
+ {
+ "name": "Fiberon PA612-CF @BBL X1C",
+ "sub_path": "filament/Fiberon PA612-CF @BBL X1C.json"
+ },
{
"name": "Generic HIPS @BBL X1C",
"sub_path": "filament/Generic HIPS @BBL X1C.json"
diff --git a/resources/profiles/BBL/cli_config.json b/resources/profiles/BBL/cli_config.json
index 2bd68647c9..7c75b738d8 100644
--- a/resources/profiles/BBL/cli_config.json
+++ b/resources/profiles/BBL/cli_config.json
@@ -75,80 +75,100 @@
"Bambu Lab X1": {
"downward_check": {
"Bambu Lab X1 0.2 nozzle": [
- "Bambu Lab A1 mini 0.2 nozzle"
+ "Bambu Lab A1 mini 0.2 nozzle",
+ "Bambu Lab A1 0.2 nozzle"
],
"Bambu Lab X1 0.4 nozzle": [
- "Bambu Lab A1 mini 0.4 nozzle"
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 0.4 nozzle"
],
"Bambu Lab X1 0.6 nozzle": [
- "Bambu Lab A1 mini 0.6 nozzle"
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 0.6 nozzle"
],
"Bambu Lab X1 0.8 nozzle": [
- "Bambu Lab A1 mini 0.8 nozzle"
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
]
}
},
"Bambu Lab X1 Carbon": {
"downward_check": {
"Bambu Lab X1 Carbon 0.2 nozzle": [
- "Bambu Lab A1 mini 0.2 nozzle"
+ "Bambu Lab A1 mini 0.2 nozzle",
+ "Bambu Lab A1 0.2 nozzle"
],
"Bambu Lab X1 Carbon 0.4 nozzle": [
- "Bambu Lab A1 mini 0.4 nozzle"
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 0.4 nozzle"
],
"Bambu Lab X1 Carbon 0.6 nozzle": [
- "Bambu Lab A1 mini 0.6 nozzle"
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 0.6 nozzle"
],
"Bambu Lab X1 Carbon 0.8 nozzle": [
- "Bambu Lab A1 mini 0.8 nozzle"
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
]
}
},
"Bambu Lab X1E": {
"downward_check": {
"Bambu Lab X1E 0.2 nozzle": [
- "Bambu Lab A1 mini 0.2 nozzle"
+ "Bambu Lab A1 mini 0.2 nozzle",
+ "Bambu Lab A1 0.2 nozzle"
],
"Bambu Lab X1E 0.4 nozzle": [
- "Bambu Lab A1 mini 0.4 nozzle"
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 0.4 nozzle"
],
"Bambu Lab X1E 0.6 nozzle": [
- "Bambu Lab A1 mini 0.6 nozzle"
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 0.6 nozzle"
],
"Bambu Lab X1E 0.8 nozzle": [
- "Bambu Lab A1 mini 0.8 nozzle"
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
]
}
},
"Bambu Lab P1P": {
"downward_check": {
"Bambu Lab P1P 0.2 nozzle": [
- "Bambu Lab A1 mini 0.2 nozzle"
+ "Bambu Lab A1 mini 0.2 nozzle",
+ "Bambu Lab A1 0.2 nozzle"
],
"Bambu Lab P1P 0.4 nozzle": [
- "Bambu Lab A1 mini 0.4 nozzle"
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 0.4 nozzle"
],
"Bambu Lab P1P 0.6 nozzle": [
- "Bambu Lab A1 mini 0.6 nozzle"
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 0.6 nozzle"
],
"Bambu Lab P1P 0.8 nozzle": [
- "Bambu Lab A1 mini 0.8 nozzle"
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
]
}
},
"Bambu Lab P1S": {
"downward_check": {
"Bambu Lab P1S 0.2 nozzle": [
- "Bambu Lab A1 mini 0.2 nozzle"
+ "Bambu Lab A1 mini 0.2 nozzle",
+ "Bambu Lab A1 0.2 nozzle"
],
"Bambu Lab P1S 0.4 nozzle": [
- "Bambu Lab A1 mini 0.4 nozzle"
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 0.4 nozzle"
],
"Bambu Lab P1S 0.6 nozzle": [
- "Bambu Lab A1 mini 0.6 nozzle"
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 0.6 nozzle"
],
"Bambu Lab P1S 0.8 nozzle": [
- "Bambu Lab A1 mini 0.8 nozzle"
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
]
}
}
diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL A1 0.2 nozzle.json
index 413d8ce795..3282b698e7 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @BBL A1 0.2 nozzle.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL A1.json b/resources/profiles/BBL/filament/Bambu ABS @BBL A1.json
index f85009c07b..6d34d11f22 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @BBL A1.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.2 nozzle.json
index f21efe7f80..ae2331a947 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.2 nozzle.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"slow_down_layer_time": [
"12"
],
diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.8 nozzle.json
index 6145a910b6..fa8c04cf9f 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C 0.8 nozzle.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"260"
],
diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C.json
index 88ad1a408f..cef6534784 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1C.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"slow_down_layer_time": [
"12"
],
diff --git a/resources/profiles/BBL/filament/Bambu ABS @base.json b/resources/profiles/BBL/filament/Bambu ABS @base.json
index a185e7cf80..f5d8680b06 100644
--- a/resources/profiles/BBL/filament/Bambu ABS @base.json
+++ b/resources/profiles/BBL/filament/Bambu ABS @base.json
@@ -5,12 +5,13 @@
"from": "system",
"filament_id": "GFB00",
"instantiation": "false",
- "filament_flow_ratio": [
- "0.95"
- ],
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_cost": [
"24.99"
],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
"filament_vendor": [
"Bambu Lab"
]
diff --git a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL A1.json b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL A1.json
index ff5f41cae7..aee4e52a01 100644
--- a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL A1.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSB50_02",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab A1 0.4 nozzle",
"Bambu Lab A1 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL P1P.json b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL P1P.json
index 37acd12522..8a51aedb7e 100644
--- a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL P1P.json
+++ b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL P1P.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSB50_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab P1P 0.8 nozzle",
"Bambu Lab P1P 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL X1C.json
index 89916b17b3..173f63007d 100644
--- a/resources/profiles/BBL/filament/Bambu ABS-GF @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu ABS-GF @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSB50_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab P1S 0.4 nozzle",
"Bambu Lab P1S 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ABS-GF @base.json b/resources/profiles/BBL/filament/Bambu ABS-GF @base.json
index 777cf85080..a67aa45465 100644
--- a/resources/profiles/BBL/filament/Bambu ABS-GF @base.json
+++ b/resources/profiles/BBL/filament/Bambu ABS-GF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFB50",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"12"
],
@@ -17,15 +18,15 @@
"filament_density": [
"1.08"
],
- "filament_type": [
- "ABS-GF"
- ],
"filament_flow_ratio": [
"0.95"
],
"filament_max_volumetric_speed": [
"12"
],
+ "filament_type": [
+ "ABS-GF"
+ ],
"filament_vendor": [
"Bambu Lab"
],
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.2 nozzle.json
index e67d7d90e0..52d1c45a6b 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.2 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSB01_10",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab A1 0.2 nozzle"
]
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.4 nozzle.json
index 9c92e7653b..97017c4fa3 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.4 nozzle.json
@@ -8,6 +8,12 @@
"chamber_temperatures": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab A1 0.4 nozzle"
]
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.6 nozzle.json
index 916abbfbe3..8aa9d6f38b 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.6 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL A1 0.6 nozzle.json
@@ -8,6 +8,12 @@
"fan_min_speed": [
"25"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab A1 0.6 nozzle",
"Bambu Lab A1 0.8 nozzle"
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json
index 90b80ac8dc..954cdc9ff2 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.2 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSB01_03",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 0.2 nozzle"
]
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json
index 5e6a6788c3..144df72be9 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1 0.6 nozzle.json
@@ -8,6 +8,12 @@
"fan_min_speed": [
"25"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_speed": [
"0.4"
],
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.2 nozzle.json
index 1253bff71f..5264f9d6de 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.2 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSB01_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab P1S 0.2 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.4 nozzle.json
index b3c53e095c..6a8a891f25 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C 0.4 nozzle.json
@@ -8,6 +8,12 @@
"chamber_temperatures": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab P1S 0.4 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C.json
index 4c9c47f1a3..db44041c73 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1C.json
@@ -8,6 +8,12 @@
"fan_min_speed": [
"25"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.6 nozzle",
"Bambu Lab X1 Carbon 0.8 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu ASA @base.json b/resources/profiles/BBL/filament/Bambu ASA @base.json
index 7ae30500d9..6850e938f6 100644
--- a/resources/profiles/BBL/filament/Bambu ASA @base.json
+++ b/resources/profiles/BBL/filament/Bambu ASA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFB01",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_max_speed": [
"35"
],
diff --git a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json
index f469aeebc6..4cfe7de309 100644
--- a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json
+++ b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFB02",
"instantiation": "false",
+ "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: ASA Aero Printing Guide.",
"fan_cooling_layer_time": [
"30"
],
@@ -26,9 +27,6 @@
"filament_max_volumetric_speed": [
"12"
],
- "filament_retract_before_wipe": [
- "nil"
- ],
"filament_retraction_length": [
"1.5"
],
@@ -58,5 +56,8 @@
],
"slow_down_layer_time": [
"5"
+ ],
+ "filament_scarf_seam_type": [
+ "none"
]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1 0.6 nozzle.json
new file mode 100644
index 0000000000..442f2b6230
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1 0.6 nozzle.json
@@ -0,0 +1,12 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL A1 0.6 nozzle",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_05",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 0.6 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1.json
new file mode 100644
index 0000000000..70c164accf
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL A1.json
@@ -0,0 +1,11 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL A1",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_04",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P 0.6 nozzle.json
new file mode 100644
index 0000000000..0d038bb515
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P 0.6 nozzle.json
@@ -0,0 +1,12 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL P1P 0.6 nozzle",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_03",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P.json
new file mode 100644
index 0000000000..7c19ff9806
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL P1P.json
@@ -0,0 +1,11 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL P1P",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_02",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1P 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C 0.6 nozzle.json
new file mode 100644
index 0000000000..44c110b635
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C 0.6 nozzle.json
@@ -0,0 +1,18 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL X1C 0.6 nozzle",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_01",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab X1 0.6 nozzle",
+ "Bambu Lab X1 0.8 nozzle",
+ "Bambu Lab X1E 0.6 nozzle",
+ "Bambu Lab X1E 0.8 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C.json
new file mode 100644
index 0000000000..a65d70b6f3
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @BBL X1C.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @BBL X1C",
+ "inherits": "Bambu ASA-CF @base",
+ "from": "system",
+ "setting_id": "GFSB51_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 0.4 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab X1E 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @base.json b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json
new file mode 100644
index 0000000000..b280a21659
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json
@@ -0,0 +1,44 @@
+{
+ "type": "filament",
+ "name": "Bambu ASA-CF @base",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "filament_id": "GFB51",
+ "instantiation": "false",
+ "fan_max_speed": [
+ "25"
+ ],
+ "filament_cost": [
+ "36.99"
+ ],
+ "filament_density": [
+ "1.02"
+ ],
+ "filament_flow_ratio": [
+ "0.9"
+ ],
+ "filament_max_volumetric_speed": [
+ "18"
+ ],
+ "filament_type": [
+ "ASA-CF"
+ ],
+ "filament_vendor": [
+ "Bambu Lab"
+ ],
+ "nozzle_temperature": [
+ "275"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "275"
+ ],
+ "nozzle_temperature_range_low": [
+ "250"
+ ],
+ "slow_down_layer_time": [
+ "12"
+ ],
+ "temperature_vitrification": [
+ "108"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @base.json b/resources/profiles/BBL/filament/Bambu PA-CF @base.json
index 2788ee1bdc..f278ca567b 100644
--- a/resources/profiles/BBL/filament/Bambu PA-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PA-CF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFN03",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_cost": [
"84.99"
],
diff --git a/resources/profiles/BBL/filament/Bambu PA6-CF @base.json b/resources/profiles/BBL/filament/Bambu PA6-CF @base.json
index 190e61093e..7df1f06e4a 100644
--- a/resources/profiles/BBL/filament/Bambu PA6-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PA6-CF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFN05",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"5"
],
diff --git a/resources/profiles/BBL/filament/Bambu PA6-GF @base.json b/resources/profiles/BBL/filament/Bambu PA6-GF @base.json
index 24a6fa15b0..e2246b0cab 100644
--- a/resources/profiles/BBL/filament/Bambu PA6-GF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PA6-GF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFN08",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"5"
],
diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json
index 0f5dcfb745..17ef39575f 100644
--- a/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json
@@ -5,20 +5,18 @@
"from": "system",
"filament_id": "GFN04",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
+ "fan_cooling_layer_time": [
+ "5"
+ ],
"fan_max_speed": [
"30"
],
"fan_min_speed": [
"10"
],
- "fan_cooling_layer_time": [
- "5"
- ],
- "full_fan_speed_layer": [
- "2"
- ],
- "filament_vendor": [
- "Bambu Lab"
+ "filament_cost": [
+ "94.99"
],
"filament_density": [
"1.06"
@@ -26,17 +24,20 @@
"filament_flow_ratio": [
"0.96"
],
- "overhang_fan_threshold": [
- "0%"
+ "filament_type": [
+ "PA-CF"
+ ],
+ "filament_vendor": [
+ "Bambu Lab"
+ ],
+ "full_fan_speed_layer": [
+ "2"
],
"overhang_fan_speed": [
"40"
],
- "filament_type": [
- "PA-CF"
- ],
- "filament_cost": [
- "94.99"
+ "overhang_fan_threshold": [
+ "0%"
],
"temperature_vitrification": [
"180"
diff --git a/resources/profiles/BBL/filament/Bambu PET-CF @base.json b/resources/profiles/BBL/filament/Bambu PET-CF @base.json
index 9cfc605c32..fd0c71af6c 100644
--- a/resources/profiles/BBL/filament/Bambu PET-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PET-CF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFT01",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"cool_plate_temp": [
"0"
],
@@ -68,6 +69,12 @@
"required_nozzle_HRC": [
"40"
],
+ "supertack_plate_temp": [
+ "80"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "80"
+ ],
"slow_down_layer_time": [
"2"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.2 nozzle.json
index 6553473d1b..97d7a7cd1a 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.2 nozzle.json
@@ -8,6 +8,12 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "nil"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "nil"
+ ],
"compatible_printers": [
"Bambu Lab A1 mini 0.2 nozzle"
]
diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.4 nozzle.json
index 837e060fe5..58b35890a9 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.4 nozzle.json
@@ -8,9 +8,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "nil"
+ ],
"filament_max_volumetric_speed": [
"9"
],
+ "filament_retraction_distances_when_cut": [
+ "nil"
+ ],
"compatible_printers": [
"Bambu Lab A1 mini 0.4 nozzle"
]
diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.8 nozzle.json
index e3d66863c0..73cc2e9633 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL A1M 0.8 nozzle.json
@@ -8,9 +8,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "nil"
+ ],
"filament_max_volumetric_speed": [
"12"
],
+ "filament_retraction_distances_when_cut": [
+ "nil"
+ ],
"compatible_printers": [
"Bambu Lab A1 mini 0.6 nozzle",
"Bambu Lab A1 mini 0.8 nozzle"
diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @base.json b/resources/profiles/BBL/filament/Bambu PETG Basic @base.json
index b187cac192..801cab4aae 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Basic @base.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Basic @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFG00",
"instantiation": "false",
+ "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.",
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.2 nozzle.json
index 7335bcaffe..23c674f620 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.2 nozzle.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"1"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.8 nozzle.json
index a4db6b85bd..6c52c255e8 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1 0.8 nozzle.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1.json
index 2a9f8a264c..5b972849de 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.2 nozzle.json
index 17106138f6..bad6f79415 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.2 nozzle.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"1"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.8 nozzle.json
index 2d3ea73731..df1eab0754 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M 0.8 nozzle.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M.json
index f6d16e8d47..d3ebff57e8 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL A1M.json
@@ -17,9 +17,15 @@
"filament_flow_ratio": [
"0.94"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"240"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.2 nozzle.json
index b0d8d37374..72f3a64f35 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.2 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"1"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.8 nozzle.json
index 44193c3c43..145f98d1ff 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C 0.8 nozzle.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C.json
index c02f8e2609..d31822c6d7 100644
--- a/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PETG HF @BBL X1C.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.8 nozzle.json
index fc6643dfc6..d79bd3b578 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1 0.8 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.2"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1.json
index fd65b8f27a..4cf239e144 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSG01_05",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.3"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.8 nozzle.json
index 5785e725ca..864884dad1 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M 0.8 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.2"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M.json
index fc1271284b..ad1111fdaa 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL A1M.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSG01_02",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.3"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.8 nozzle.json
index 39a4bfb3f8..eafc44f3b5 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C 0.8 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.2"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C.json
index 386ef5eab8..830dab5dea 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSG01_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"filament_retraction_length": [
"0.3"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json
index 174052635c..f2569d5f39 100644
--- a/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json
+++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFG01",
"instantiation": "false",
+ "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.",
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.4 nozzle.json
index 47f54f981d..4ad1c37417 100644
--- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.4 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"9"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.8 nozzle.json
index ad7db31ffb..edf85380a3 100644
--- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1 0.8 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"9"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1M.json
index 6c7b97ce7b..7852889288 100644
--- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL A1M.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSG50_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"9"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"textured_plate_temp_initial_layer": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json
index d0ea93c38c..41f1bc333e 100644
--- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"11.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json
index 8d0e7ce354..42e23219c5 100644
--- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"11.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json
index 95b26c2796..484a397270 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFA11",
"instantiation": "false",
+ "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero).",
"fan_min_speed": [
"30"
],
@@ -26,12 +27,21 @@
"filament_vendor": [
"Bambu Lab"
],
- "nozzle_temperature_range_high": [
- "260"
+ "filament_scarf_seam_type": [
+ "none"
],
"nozzle_temperature_range_low": [
"210"
],
+ "nozzle_temperature_range_high": [
+ "260"
+ ],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1 0.2 nozzle.json
index df3036b34c..b26ee48d43 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1.json
index 4e3b6cc6dc..fbb0369812 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M 0.2 nozzle.json
index 49b44fa936..f54a464e62 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M.json
index 1785878917..23e418b7e0 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL A1M.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @base.json b/resources/profiles/BBL/filament/Bambu PLA Basic @base.json
index b975be47dc..45a5b35790 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Basic @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Basic @base.json
@@ -20,6 +20,19 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
+ "filament_scarf_height":[
+ "10%"
+ ],
+ "filament_scarf_gap":[
+ "0%"
+ ],
+ "filament_scarf_length":[
+ "10"
+ ],
+ "compatible_printers": [],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1 0.2 nozzle.json
index ae4fbb2747..bf0d7a524f 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1.json
index d3cb1dfc85..094a7c31ac 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M 0.2 nozzle.json
index b70fded863..3f59d61d76 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M.json
index c73ef89d00..1330b7ac74 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL A1M.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P 0.2 nozzle.json
index b9e85c1d8c..636518b50e 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P 0.2 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P.json
index e461af9d49..2ebe013d9a 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL P1P.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.2 nozzle.json
index 7bb8e8f94b..0d387ff78c 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.2 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA15_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.8 nozzle.json
index 43457c192d..bae2c44be9 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C 0.8 nozzle.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA15_02",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab P1S 0.8 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C.json
index d95ffa6a6d..1a8e719f09 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA15_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 Carbon 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1 0.2 nozzle.json
index 5eae9e1e1a..8763639cdd 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1 0.2 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"1"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1.json
index b4949148dd..4fa331e1b9 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL A1.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL P1P.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL P1P.json
index e162316fd3..198c2bf29a 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL P1P.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL P1P.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1.json
index 6f91b4f7fa..c4a3ca7738 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA12_08",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1C.json
index 5d0c2705a7..abcc9763a4 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA12_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 Carbon 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1E.json
index 30c339132c..1bfc1ca5cd 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1E.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Glow @BBL X1E.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA12_04",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1E 0.4 nozzle",
"Bambu Lab X1E 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1.json
index c4eaac7e47..1452831345 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1M.json
index ebb955bdf0..c53cde99c5 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL A1M.json
@@ -14,6 +14,12 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1.json
index 20b0a0969e..a56c168547 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA07_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json
index 29592f9b4f..0b9a41dce6 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSA07_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 Carbon 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1 0.2 nozzle.json
index 55bcf1e9b0..a66550291a 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1.json
index 7b877ed611..95e6db9522 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M 0.2 nozzle.json
index eb0f819f53..477f128d1c 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M 0.2 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M.json
index 65403831cb..8b8d54f422 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL A1M.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1.json
index c0b3df5555..b223ece714 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA05",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json
index 04b51f8104..25a2125b1c 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA01_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json
index fc0962cd0e..a4f376d9bb 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA01_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.8 nozzle",
"Bambu Lab P1S 0.8 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json
index 0987393ec6..d1f1969c26 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab X1 Carbon 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @base.json b/resources/profiles/BBL/filament/Bambu PLA Matte @base.json
index 36156e0af8..1550142d46 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Matte @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Matte @base.json
@@ -17,6 +17,18 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
+ "filament_scarf_height":[
+ "5%"
+ ],
+ "filament_scarf_gap":[
+ "0%"
+ ],
+ "filament_scarf_length":[
+ "10"
+ ],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json
index 77c81e4fb0..986613c9ae 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFA02",
"instantiation": "false",
+ "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.",
"filament_cost": [
"29.99"
],
@@ -17,6 +18,9 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @base.json b/resources/profiles/BBL/filament/Bambu PLA Silk @base.json
index 642f939610..e9e66c97eb 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Silk @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Silk @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFA05",
"instantiation": "false",
+ "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.",
"filament_cost": [
"29.99"
],
@@ -17,12 +18,24 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_height": [
+ "5%"
+ ],
+ "filament_scarf_gap": [
+ "0%"
+ ],
"nozzle_temperature": [
"230"
],
"nozzle_temperature_initial_layer": [
"230"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json
index 24168d6f13..6268e9d97e 100644
--- a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json
@@ -17,6 +17,9 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
]
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1 0.8 nozzle.json
index 48fdfde08f..7b86bec58f 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1 0.8 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1.json
index f69ce39db1..f27abc0df2 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"15"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M 0.8 nozzle.json
index d22d4de449..af10570429 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M 0.8 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M.json
index b976f74eb7..06b3e679e2 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL A1M.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"15"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json
index 204237570b..d7a632e1bd 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA50_02",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"230"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json
index 2e4aa2e93c..6ec63c6a40 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json
@@ -5,9 +5,15 @@
"from": "system",
"setting_id": "GFSA50_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"15"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"nozzle_temperature": [
"230"
],
diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @base.json b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json
index 3f356ae865..ac88cc7098 100644
--- a/resources/profiles/BBL/filament/Bambu PLA-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json
@@ -29,15 +29,21 @@
"filament_vendor": [
"Bambu Lab"
],
- "nozzle_temperature_range_high": [
- "250"
- ],
"nozzle_temperature_range_low": [
"210"
],
+ "nozzle_temperature_range_high": [
+ "250"
+ ],
"required_nozzle_HRC": [
"40"
],
+ "supertack_plate_temp": [
+ "50"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "50"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json
index 391e986bf7..cef49fe98d 100644
--- a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json
+++ b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFT02",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_max_speed": [
"30"
],
@@ -23,9 +24,6 @@
"filament_vendor": [
"Bambu Lab"
],
- "nozzle_temperature_range_high": [
- "350"
- ],
"nozzle_temperature_range_low": [
"310"
],
diff --git a/resources/profiles/BBL/filament/Bambu PVA @base.json b/resources/profiles/BBL/filament/Bambu PVA @base.json
index a236f83bd6..f9396292cf 100644
--- a/resources/profiles/BBL/filament/Bambu PVA @base.json
+++ b/resources/profiles/BBL/filament/Bambu PVA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS04",
"instantiation": "false",
+ "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.",
"filament_cost": [
"79.98"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json b/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json
index 7af6db4c14..3166617d72 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json
@@ -5,11 +5,12 @@
"from": "system",
"filament_id": "GFS03",
"instantiation": "false",
- "required_nozzle_HRC": [
- "3"
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
+ "fan_cooling_layer_time": [
+ "10"
],
- "filament_vendor": [
- "Bambu Lab"
+ "filament_cost": [
+ "34.99"
],
"filament_density": [
"1.22"
@@ -17,17 +18,17 @@
"filament_is_support": [
"1"
],
- "nozzle_temperature_initial_layer": [
- "280"
+ "filament_vendor": [
+ "Bambu Lab"
],
"nozzle_temperature": [
"280"
],
- "fan_cooling_layer_time": [
- "10"
+ "nozzle_temperature_initial_layer": [
+ "280"
],
- "filament_cost": [
- "34.99"
+ "required_nozzle_HRC": [
+ "3"
],
"slow_down_layer_time": [
"6"
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json
index 75179145e6..7868741dae 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS02",
"instantiation": "false",
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"cool_plate_temp": [
"40"
],
@@ -23,6 +24,9 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1 0.2 nozzle.json
index 52f12d83ed..db0f6ce2f1 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1 0.2 nozzle.json
@@ -11,9 +11,15 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"0.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1.json
index cc081f215f..e0cb4210a7 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1.json
@@ -11,6 +11,12 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M 0.2 nozzle.json
index e896919e4e..90920ebe8c 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M 0.2 nozzle.json
@@ -11,9 +11,15 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"0.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M.json
index ad2bc888ac..fcbd1bb645 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL A1M.json
@@ -11,6 +11,12 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P 0.2 nozzle.json
index 0352dc891a..5f71f87c3f 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P 0.2 nozzle.json
@@ -11,9 +11,15 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"0.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P.json
index 1f47df1ec9..3e3db66e03 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL P1P.json
@@ -11,6 +11,12 @@
"eng_plate_temp_initial_layer": [
"65"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C 0.2 nozzle.json
index fa58a048a7..793ddf06ee 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C 0.2 nozzle.json
@@ -11,9 +11,15 @@
"eng_plate_temp_initial_layer": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"0.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab P1S 0.2 nozzle",
"Bambu Lab X1 0.2 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C.json
index 8672833ea7..3f210fc579 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @BBL X1C.json
@@ -11,6 +11,12 @@
"eng_plate_temp_initial_layer": [
"60"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab P1S 0.4 nozzle",
"Bambu Lab P1S 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json
index 4e62835862..6eae3684bf 100644
--- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS05",
"instantiation": "false",
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"fan_cooling_layer_time": [
"80"
],
@@ -26,6 +27,9 @@
"filament_max_volumetric_speed": [
"6"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"filament_vendor": [
"Bambu Lab"
],
@@ -44,6 +48,9 @@
"slow_down_layer_time": [
"8"
],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"textured_plate_temp": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support G @base.json b/resources/profiles/BBL/filament/Bambu Support G @base.json
index 1d72fe9580..7a60603cae 100644
--- a/resources/profiles/BBL/filament/Bambu Support G @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support G @base.json
@@ -5,11 +5,12 @@
"from": "system",
"filament_id": "GFS01",
"instantiation": "false",
- "required_nozzle_HRC": [
- "3"
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
+ "fan_cooling_layer_time": [
+ "10"
],
- "filament_vendor": [
- "Bambu Lab"
+ "filament_cost": [
+ "34.99"
],
"filament_density": [
"1.22"
@@ -17,17 +18,20 @@
"filament_is_support": [
"1"
],
- "nozzle_temperature_initial_layer": [
- "280"
+ "filament_vendor": [
+ "Bambu Lab"
],
"nozzle_temperature": [
"280"
],
- "fan_cooling_layer_time": [
- "10"
+ "nozzle_temperature_initial_layer": [
+ "280"
],
- "filament_cost": [
- "34.99"
+ "required_nozzle_HRC": [
+ "3"
+ ],
+ "filament_scarf_seam_type": [
+ "none"
],
"slow_down_layer_time": [
"6"
diff --git a/resources/profiles/BBL/filament/Bambu Support W @base.json b/resources/profiles/BBL/filament/Bambu Support W @base.json
index 63f7acebc8..2b40b44e08 100644
--- a/resources/profiles/BBL/filament/Bambu Support W @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support W @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS00",
"instantiation": "false",
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"cool_plate_temp": [
"40"
],
@@ -23,6 +24,9 @@
"filament_vendor": [
"Bambu Lab"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Bambu Support for ABS @BBL A1.json b/resources/profiles/BBL/filament/Bambu Support for ABS @BBL A1.json
index f084186496..52655bf9fb 100644
--- a/resources/profiles/BBL/filament/Bambu Support for ABS @BBL A1.json
+++ b/resources/profiles/BBL/filament/Bambu Support for ABS @BBL A1.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSS06_01",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab A1 0.4 nozzle",
"Bambu Lab A1 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu Support for ABS @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support for ABS @BBL X1C.json
index 5029095bca..9ae445e96c 100644
--- a/resources/profiles/BBL/filament/Bambu Support for ABS @BBL X1C.json
+++ b/resources/profiles/BBL/filament/Bambu Support for ABS @BBL X1C.json
@@ -5,6 +5,12 @@
"from": "system",
"setting_id": "GFSS06_00",
"instantiation": "true",
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"compatible_printers": [
"Bambu Lab P1P 0.4 nozzle",
"Bambu Lab P1P 0.6 nozzle",
diff --git a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json
index 506ffa39ac..3bd74d4d96 100644
--- a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json
+++ b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS06",
"instantiation": "false",
+ "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.",
"fan_max_speed": [
"30"
],
@@ -29,6 +30,9 @@
"slow_down_layer_time": [
"12"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
"temperature_vitrification": [
"90"
]
diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A @base.json b/resources/profiles/BBL/filament/Bambu TPU 95A @base.json
index bc1e839340..eb0555633a 100644
--- a/resources/profiles/BBL/filament/Bambu TPU 95A @base.json
+++ b/resources/profiles/BBL/filament/Bambu TPU 95A @base.json
@@ -5,19 +5,20 @@
"from": "system",
"filament_id": "GFU01",
"instantiation": "false",
- "filament_vendor": [
- "Bambu Lab"
+ "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.",
+ "filament_cost": [
+ "41.99"
],
"filament_density": [
"1.22"
],
- "nozzle_temperature_initial_layer": [
- "230"
- ],
- "filament_cost": [
- "41.99"
+ "filament_vendor": [
+ "Bambu Lab"
],
"nozzle_temperature": [
"230"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json b/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json
index 0445791bfc..6deab30b35 100644
--- a/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json
+++ b/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFU00",
"instantiation": "false",
+ "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.",
"filament_cost": [
"41.99"
],
diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json
new file mode 100644
index 0000000000..52ed49cee1
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "Bambu TPU for AMS @BBL A1",
+ "inherits": "Bambu TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU02_02",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 0.4 nozzle",
+ "Bambu Lab A1 0.6 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json
new file mode 100644
index 0000000000..bff83af130
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "Bambu TPU for AMS @BBL A1M",
+ "inherits": "Bambu TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU02_03",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 mini 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json
new file mode 100644
index 0000000000..3c8c7dad73
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Bambu TPU for AMS @BBL P1P",
+ "inherits": "Bambu TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU02_01",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1P 0.4 nozzle",
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle",
+ "Bambu Lab X1 0.4 nozzle",
+ "Bambu Lab X1 0.6 nozzle",
+ "Bambu Lab X1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json
new file mode 100644
index 0000000000..8c7dac662f
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json
@@ -0,0 +1,19 @@
+{
+ "type": "filament",
+ "name": "Bambu TPU for AMS @BBL X1C",
+ "inherits": "Bambu TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU02_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab X1E 0.4 nozzle",
+ "Bambu Lab X1E 0.8 nozzle",
+ "Bambu Lab X1E 0.6 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json
new file mode 100644
index 0000000000..09d4296506
--- /dev/null
+++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json
@@ -0,0 +1,54 @@
+{
+ "type": "filament",
+ "name": "Bambu TPU for AMS @base",
+ "inherits": "fdm_filament_tpu",
+ "from": "system",
+ "filament_id": "GFU02",
+ "instantiation": "false",
+ "description": "If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.",
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "20"
+ ],
+ "filament_cost": [
+ "38.99"
+ ],
+ "filament_density": [
+ "1.26"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "18"
+ ],
+ "filament_type": [
+ "TPU-AMS"
+ ],
+ "filament_vendor": [
+ "Bambu Lab"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "nozzle_temperature_range_high": [
+ "240"
+ ],
+ "nozzle_temperature_range_low": [
+ "220"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "slow_down_layer_time": [
+ "10"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA12-CF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PA12-CF @BBL X1C.json
new file mode 100644
index 0000000000..06bca8c5f9
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA12-CF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA12-CF @BBL X1C",
+ "inherits": "Fiberon PA12-CF @base",
+ "from": "system",
+ "setting_id": "GFSL52_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA12-CF @base.json b/resources/profiles/BBL/filament/Fiberon PA12-CF @base.json
new file mode 100644
index 0000000000..e2a5bf6475
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA12-CF @base.json
@@ -0,0 +1,71 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA12-CF @base",
+ "inherits": "fdm_filament_pa",
+ "from": "system",
+ "filament_id": "GFL52",
+ "instantiation": "false",
+ "eng_plate_temp": [
+ "40"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40"
+ ],
+ "fan_cooling_layer_time": [
+ "15"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "filament_cost": [
+ "99.99"
+ ],
+ "filament_density": [
+ "1.06"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "14"
+ ],
+ "filament_type": [
+ "PA-CF"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "full_fan_speed_layer": [
+ "2"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "300"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "300"
+ ],
+ "nozzle_temperature_range_low": [
+ "260"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "temperature_vitrification": [
+ "131"
+ ],
+ "textured_plate_temp": [
+ "40"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA6-CF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PA6-CF @BBL X1C.json
new file mode 100644
index 0000000000..d10be7532a
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA6-CF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA6-CF @BBL X1C",
+ "inherits": "Fiberon PA6-CF @base",
+ "from": "system",
+ "setting_id": "GFSL50_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA6-CF @base.json b/resources/profiles/BBL/filament/Fiberon PA6-CF @base.json
new file mode 100644
index 0000000000..5027f22096
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA6-CF @base.json
@@ -0,0 +1,68 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA6-CF @base",
+ "inherits": "fdm_filament_pa",
+ "from": "system",
+ "filament_id": "GFL50",
+ "instantiation": "false",
+ "eng_plate_temp": [
+ "40"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40"
+ ],
+ "fan_cooling_layer_time": [
+ "15"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "filament_cost": [
+ "83.99"
+ ],
+ "filament_density": [
+ "1.17"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "14"
+ ],
+ "filament_type": [
+ "PA6-CF"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "300"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "300"
+ ],
+ "nozzle_temperature_range_low": [
+ "280"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "temperature_vitrification": [
+ "215"
+ ],
+ "textured_plate_temp": [
+ "40"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA6-GF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PA6-GF @BBL X1C.json
new file mode 100644
index 0000000000..c38dfd1795
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA6-GF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA6-GF @BBL X1C",
+ "inherits": "Fiberon PA6-GF @base",
+ "from": "system",
+ "setting_id": "GFSL51_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA6-GF @base.json b/resources/profiles/BBL/filament/Fiberon PA6-GF @base.json
new file mode 100644
index 0000000000..9ab9237e7b
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA6-GF @base.json
@@ -0,0 +1,71 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA6-GF @base",
+ "inherits": "fdm_filament_pa",
+ "from": "system",
+ "filament_id": "GFL51",
+ "instantiation": "false",
+ "eng_plate_temp": [
+ "40"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40"
+ ],
+ "fan_cooling_layer_time": [
+ "15"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "filament_cost": [
+ "63.99"
+ ],
+ "filament_density": [
+ "1.2"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_type": [
+ "PA-GF"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "full_fan_speed_layer": [
+ "2"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "300"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "300"
+ ],
+ "nozzle_temperature_range_low": [
+ "280"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "temperature_vitrification": [
+ "191"
+ ],
+ "textured_plate_temp": [
+ "40"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA612-CF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PA612-CF @BBL X1C.json
new file mode 100644
index 0000000000..d91d220575
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA612-CF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA612-CF @BBL X1C",
+ "inherits": "Fiberon PA612-CF @base",
+ "from": "system",
+ "setting_id": "GFSL53_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json b/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json
new file mode 100644
index 0000000000..031f9737be
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PA612-CF @base.json
@@ -0,0 +1,41 @@
+{
+ "type": "filament",
+ "name": "Fiberon PA612-CF @base",
+ "inherits": "fdm_filament_pa",
+ "from": "system",
+ "filament_id": "GFL53",
+ "instantiation": "false",
+ "fan_cooling_layer_time": [
+ "5"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "filament_cost": [
+ "94.99"
+ ],
+ "filament_density": [
+ "1.06"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_vendor": [
+ "Bambu Lab"
+ ],
+ "full_fan_speed_layer": [
+ "2"
+ ],
+ "overhang_fan_speed": [
+ "40"
+ ],
+ "overhang_fan_threshold": [
+ "0%"
+ ],
+ "temperature_vitrification": [
+ "180"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PET-CF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PET-CF @BBL X1C.json
new file mode 100644
index 0000000000..789dddb752
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PET-CF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PET-CF @BBL X1C",
+ "inherits": "Fiberon PET-CF @base",
+ "from": "system",
+ "setting_id": "GFSL54_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PET-CF @base.json b/resources/profiles/BBL/filament/Fiberon PET-CF @base.json
new file mode 100644
index 0000000000..8a6520f1f4
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PET-CF @base.json
@@ -0,0 +1,89 @@
+{
+ "type": "filament",
+ "name": "Fiberon PET-CF @base",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "filament_id": "GFL54",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "70"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "70"
+ ],
+ "fan_cooling_layer_time": [
+ "242"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "filament_cost": [
+ "89.99"
+ ],
+ "filament_density": [
+ "1.34"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_type": [
+ "PET-CF"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "hot_plate_temp": [
+ "70"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "300"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "300"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "nozzle_temperature_range_low": [
+ "270"
+ ],
+ "required_nozzle_HRC": [
+ "40"
+ ],
+ "supertack_plate_temp": [
+ "80"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "80"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "temperature_vitrification": [
+ "147"
+ ],
+ "textured_plate_temp": [
+ "70"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "70"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PETG-ESD @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PETG-ESD @BBL X1C.json
new file mode 100644
index 0000000000..0cce20991f
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PETG-ESD @BBL X1C.json
@@ -0,0 +1,19 @@
+{
+ "type": "filament",
+ "name": "Fiberon PETG-ESD @BBL X1C",
+ "inherits": "Fiberon PETG-ESD @base",
+ "from": "system",
+ "setting_id": "GFSL06_00",
+ "instantiation": "true",
+ "filament_cost": [
+ "29.99"
+ ],
+ "compatible_printers": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PETG-ESD @base.json b/resources/profiles/BBL/filament/Fiberon PETG-ESD @base.json
new file mode 100644
index 0000000000..9f861a724e
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PETG-ESD @base.json
@@ -0,0 +1,77 @@
+{
+ "type": "filament",
+ "name": "Fiberon PETG-ESD @base",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "filament_id": "GFL06",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "60"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "60"
+ ],
+ "fan_cooling_layer_time": [
+ "15"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "filament_cost": [
+ "0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "hot_plate_temp": [
+ "60"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "60"
+ ],
+ "nozzle_temperature": [
+ "290"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "290"
+ ],
+ "nozzle_temperature_range_high": [
+ "290"
+ ],
+ "nozzle_temperature_range_low": [
+ "250"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "temperature_vitrification": [
+ "76"
+ ],
+ "textured_plate_temp": [
+ "60"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "60"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PETG-rCF @BBL X1C.json b/resources/profiles/BBL/filament/Fiberon PETG-rCF @BBL X1C.json
new file mode 100644
index 0000000000..790d256550
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PETG-rCF @BBL X1C.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "Fiberon PETG-rCF @BBL X1C",
+ "inherits": "Fiberon PETG-rCF @base",
+ "from": "system",
+ "setting_id": "GFSL55_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Fiberon PETG-rCF @base.json b/resources/profiles/BBL/filament/Fiberon PETG-rCF @base.json
new file mode 100644
index 0000000000..aa367e2e2b
--- /dev/null
+++ b/resources/profiles/BBL/filament/Fiberon PETG-rCF @base.json
@@ -0,0 +1,80 @@
+{
+ "type": "filament",
+ "name": "Fiberon PETG-rCF @base",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "filament_id": "GFL55",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "70"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "70"
+ ],
+ "fan_cooling_layer_time": [
+ "12"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "filament_cost": [
+ "39.99"
+ ],
+ "filament_density": [
+ "1.3"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_type": [
+ "PETG-CF"
+ ],
+ "filament_vendor": [
+ "Polymaker"
+ ],
+ "hot_plate_temp": [
+ "70"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "270"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "required_nozzle_HRC": [
+ "40"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "textured_plate_temp": [
+ "70"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "70"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic ABS @base.json b/resources/profiles/BBL/filament/Generic ABS @base.json
index e41b289fbc..80a90af993 100644
--- a/resources/profiles/BBL/filament/Generic ABS @base.json
+++ b/resources/profiles/BBL/filament/Generic ABS @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFB99",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_flow_ratio": [
"0.95"
],
diff --git a/resources/profiles/BBL/filament/Generic ASA @base.json b/resources/profiles/BBL/filament/Generic ASA @base.json
index 9f80b36f12..148f69f3d0 100644
--- a/resources/profiles/BBL/filament/Generic ASA @base.json
+++ b/resources/profiles/BBL/filament/Generic ASA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFB98",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_flow_ratio": [
"0.95"
],
diff --git a/resources/profiles/BBL/filament/Generic EVA @base.json b/resources/profiles/BBL/filament/Generic EVA @base.json
index 6a24cfdba5..7c22532034 100644
--- a/resources/profiles/BBL/filament/Generic EVA @base.json
+++ b/resources/profiles/BBL/filament/Generic EVA @base.json
@@ -38,9 +38,6 @@
"filament_max_volumetric_speed": [
"12"
],
- "filament_type": [
- "EVA"
- ],
"hot_plate_temp": [
"55"
],
diff --git a/resources/profiles/BBL/filament/Generic PA-CF.json b/resources/profiles/BBL/filament/Generic PA-CF.json
index 5ce9881f82..e229358d4c 100644
--- a/resources/profiles/BBL/filament/Generic PA-CF.json
+++ b/resources/profiles/BBL/filament/Generic PA-CF.json
@@ -6,6 +6,7 @@
"filament_id": "GFN98",
"setting_id": "GFSN99",
"instantiation": "true",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"5"
],
diff --git a/resources/profiles/BBL/filament/Generic PA.json b/resources/profiles/BBL/filament/Generic PA.json
index 6a4f7bf4e2..d7dd99831f 100644
--- a/resources/profiles/BBL/filament/Generic PA.json
+++ b/resources/profiles/BBL/filament/Generic PA.json
@@ -6,6 +6,7 @@
"filament_id": "GFN99",
"setting_id": "GFSN98",
"instantiation": "true",
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"chamber_temperatures": [
"60"
],
diff --git a/resources/profiles/BBL/filament/Generic PC @base.json b/resources/profiles/BBL/filament/Generic PC @base.json
index 6c56650baf..c2a9975e37 100644
--- a/resources/profiles/BBL/filament/Generic PC @base.json
+++ b/resources/profiles/BBL/filament/Generic PC @base.json
@@ -5,10 +5,11 @@
"from": "system",
"filament_id": "GFC99",
"instantiation": "false",
- "filament_max_volumetric_speed": [
- "16"
- ],
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_flow_ratio": [
"0.94"
+ ],
+ "filament_max_volumetric_speed": [
+ "16"
]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL A1 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1 0.2 nozzle.json
new file mode 100644
index 0000000000..099dfcc30a
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1 0.2 nozzle.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL A1 0.2 nozzle",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_05",
+ "instantiation": "true",
+ "filament_max_volumetric_speed": [
+ "1"
+ ],
+ "compatible_printers": [
+ "Bambu Lab A1 0.2 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL A1.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1.json
new file mode 100644
index 0000000000..d870068812
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL A1",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_04",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 0.4 nozzle",
+ "Bambu Lab A1 0.6 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M 0.2 nozzle.json
new file mode 100644
index 0000000000..0b499781ae
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M 0.2 nozzle.json
@@ -0,0 +1,11 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL A1M 0.2 nozzle",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_07",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 mini 0.2 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M.json
new file mode 100644
index 0000000000..b42117eec9
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL A1M.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL A1M",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_06",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab A1 mini 0.4 nozzle",
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 mini 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P 0.2 nozzle.json
new file mode 100644
index 0000000000..ff6131e515
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P 0.2 nozzle.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL P1P 0.2 nozzle",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_03",
+ "instantiation": "true",
+ "filament_max_volumetric_speed": [
+ "1"
+ ],
+ "compatible_printers": [
+ "Bambu Lab P1P 0.2 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P.json
new file mode 100644
index 0000000000..00587abea4
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL P1P.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL P1P",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_02",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab P1P 0.4 nozzle",
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C 0.2 nozzle.json
new file mode 100644
index 0000000000..963be7b885
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C 0.2 nozzle.json
@@ -0,0 +1,17 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL X1C 0.2 nozzle",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_01",
+ "instantiation": "true",
+ "filament_max_volumetric_speed": [
+ "1"
+ ],
+ "compatible_printers": [
+ "Bambu Lab P1S 0.2 nozzle",
+ "Bambu Lab X1 0.2 nozzle",
+ "Bambu Lab X1 Carbon 0.2 nozzle",
+ "Bambu Lab X1E 0.2 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C.json
new file mode 100644
index 0000000000..cdb1a1196c
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @BBL X1C.json
@@ -0,0 +1,22 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @BBL X1C",
+ "inherits": "Generic PETG HF @base",
+ "from": "system",
+ "setting_id": "GFSG96_00",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab X1E 0.4 nozzle",
+ "Bambu Lab X1E 0.6 nozzle",
+ "Bambu Lab X1E 0.8 nozzle",
+ "Bambu Lab X1 0.4 nozzle",
+ "Bambu Lab X1 0.6 nozzle",
+ "Bambu Lab X1 0.8 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG HF @base.json b/resources/profiles/BBL/filament/Generic PETG HF @base.json
new file mode 100644
index 0000000000..085538fe91
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic PETG HF @base.json
@@ -0,0 +1,71 @@
+{
+ "type": "filament",
+ "name": "Generic PETG HF @base",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "filament_id": "GFG96",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "70"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "70"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "fan_max_speed": [
+ "40"
+ ],
+ "filament_cost": [
+ "24.99"
+ ],
+ "filament_density": [
+ "1.28"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "16"
+ ],
+ "hot_plate_temp": [
+ "70"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "overhang_fan_speed": [
+ "90"
+ ],
+ "overhang_fan_threshold": [
+ "10%"
+ ],
+ "slow_down_layer_time": [
+ "25"
+ ],
+ "textured_plate_temp": [
+ "70"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "70"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @base.json b/resources/profiles/BBL/filament/Generic PETG-CF @base.json
index 4e12feba51..5690901216 100644
--- a/resources/profiles/BBL/filament/Generic PETG-CF @base.json
+++ b/resources/profiles/BBL/filament/Generic PETG-CF @base.json
@@ -38,9 +38,6 @@
"filament_type": [
"PETG-CF"
],
- "filament_vendor": [
- "Generic"
- ],
"hot_plate_temp": [
"70"
],
@@ -65,9 +62,6 @@
"slow_down_layer_time": [
"6"
],
- "temperature_vitrification": [
- "70"
- ],
"textured_plate_temp": [
"70"
],
diff --git a/resources/profiles/BBL/filament/Generic PLA @base.json b/resources/profiles/BBL/filament/Generic PLA @base.json
index 904cef4dae..bf37d0917e 100644
--- a/resources/profiles/BBL/filament/Generic PLA @base.json
+++ b/resources/profiles/BBL/filament/Generic PLA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFL99",
"instantiation": "false",
+ "description": "The generic presets are conservatively tuned for compatibility with a wider range of filaments. For higher printing quality and speeds, please use Bambu filaments with Bambu presets.",
"filament_flow_ratio": [
"0.98"
],
diff --git a/resources/profiles/BBL/filament/Generic PLA Silk @base.json b/resources/profiles/BBL/filament/Generic PLA Silk @base.json
index 60ac1d46fa..03f0c0edcd 100644
--- a/resources/profiles/BBL/filament/Generic PLA Silk @base.json
+++ b/resources/profiles/BBL/filament/Generic PLA Silk @base.json
@@ -5,9 +5,16 @@
"from": "system",
"filament_id": "GFL96",
"instantiation": "false",
+ "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.",
"filament_flow_ratio": [
"0.98"
],
+ "supertack_plate_temp": [
+ "35"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "35"
+ ],
"slow_down_layer_time": [
"8"
],
diff --git a/resources/profiles/BBL/filament/Generic PLA-CF @base.json b/resources/profiles/BBL/filament/Generic PLA-CF @base.json
index 597bdd6e23..8bb1564a4c 100644
--- a/resources/profiles/BBL/filament/Generic PLA-CF @base.json
+++ b/resources/profiles/BBL/filament/Generic PLA-CF @base.json
@@ -23,6 +23,12 @@
"required_nozzle_HRC": [
"40"
],
+ "supertack_plate_temp": [
+ "50"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "50"
+ ],
"slow_down_layer_time": [
"7"
],
diff --git a/resources/profiles/BBL/filament/Generic PPA-CF @base.json b/resources/profiles/BBL/filament/Generic PPA-CF @base.json
index 1e642929b2..8c6a9c9b8d 100644
--- a/resources/profiles/BBL/filament/Generic PPA-CF @base.json
+++ b/resources/profiles/BBL/filament/Generic PPA-CF @base.json
@@ -5,12 +5,10 @@
"from": "system",
"filament_id": "GFN97",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"filament_max_volumetric_speed": [
"6"
],
- "filament_type": [
- "PPA-CF"
- ],
"filament_vendor": [
"Generic"
]
diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @base.json b/resources/profiles/BBL/filament/Generic PPS-CF @base.json
index 887d276e2d..5fc5d6e407 100644
--- a/resources/profiles/BBL/filament/Generic PPS-CF @base.json
+++ b/resources/profiles/BBL/filament/Generic PPS-CF @base.json
@@ -5,11 +5,15 @@
"from": "system",
"filament_id": "GFT98",
"instantiation": "false",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_max_speed": [
"30"
],
+ "filament_cost": [
+ "240"
+ ],
"filament_density": [
- "1.3"
+ "1.26"
],
"filament_max_volumetric_speed": [
"3"
@@ -17,8 +21,8 @@
"filament_type": [
"PPS-CF"
],
- "nozzle_temperature_range_high": [
- "350"
+ "nozzle_temperature_range_low": [
+ "310"
],
"required_nozzle_HRC": [
"40"
diff --git a/resources/profiles/BBL/filament/Generic PVA @base.json b/resources/profiles/BBL/filament/Generic PVA @base.json
index c29671ea3c..c394eaeb97 100644
--- a/resources/profiles/BBL/filament/Generic PVA @base.json
+++ b/resources/profiles/BBL/filament/Generic PVA @base.json
@@ -5,6 +5,7 @@
"from": "system",
"filament_id": "GFS99",
"instantiation": "false",
+ "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.",
"filament_flow_ratio": [
"0.95"
],
diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1.json b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1.json
new file mode 100644
index 0000000000..b73d35817b
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1.json
@@ -0,0 +1,28 @@
+{
+ "type": "filament",
+ "name": "Generic TPU for AMS @BBL A1",
+ "inherits": "Generic TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU98_02",
+ "instantiation": "true",
+ "fan_cooling_layer_time": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "slow_down_layer_time": [
+ "10"
+ ],
+ "compatible_printers": [
+ "Bambu Lab A1 0.4 nozzle",
+ "Bambu Lab A1 0.6 nozzle",
+ "Bambu Lab A1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1M.json b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1M.json
new file mode 100644
index 0000000000..bcb504c038
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL A1M.json
@@ -0,0 +1,28 @@
+{
+ "type": "filament",
+ "name": "Generic TPU for AMS @BBL A1M",
+ "inherits": "Generic TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU98_03",
+ "instantiation": "true",
+ "fan_cooling_layer_time": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "slow_down_layer_time": [
+ "10"
+ ],
+ "compatible_printers": [
+ "Bambu Lab A1 mini 0.8 nozzle",
+ "Bambu Lab A1 mini 0.6 nozzle",
+ "Bambu Lab A1 mini 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @BBL P1P.json b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL P1P.json
new file mode 100644
index 0000000000..fafe5667f4
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL P1P.json
@@ -0,0 +1,31 @@
+{
+ "type": "filament",
+ "name": "Generic TPU for AMS @BBL P1P",
+ "inherits": "Generic TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU98_01",
+ "instantiation": "true",
+ "fan_cooling_layer_time": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "slow_down_layer_time": [
+ "10"
+ ],
+ "compatible_printers": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle",
+ "Bambu Lab P1P 0.4 nozzle",
+ "Bambu Lab X1 0.4 nozzle",
+ "Bambu Lab X1 0.6 nozzle",
+ "Bambu Lab X1 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @BBL X1C.json b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL X1C.json
new file mode 100644
index 0000000000..b2e6d31197
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic TPU for AMS @BBL X1C.json
@@ -0,0 +1,34 @@
+{
+ "type": "filament",
+ "name": "Generic TPU for AMS @BBL X1C",
+ "inherits": "Generic TPU for AMS @base",
+ "from": "system",
+ "setting_id": "GFSU98_00",
+ "instantiation": "true",
+ "fan_cooling_layer_time": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "slow_down_layer_time": [
+ "10"
+ ],
+ "compatible_printers": [
+ "Bambu Lab X1 Carbon 0.4 nozzle",
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle",
+ "Bambu Lab X1E 0.4 nozzle",
+ "Bambu Lab X1E 0.6 nozzle",
+ "Bambu Lab X1E 0.8 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @base.json b/resources/profiles/BBL/filament/Generic TPU for AMS @base.json
new file mode 100644
index 0000000000..c214ba1c27
--- /dev/null
+++ b/resources/profiles/BBL/filament/Generic TPU for AMS @base.json
@@ -0,0 +1,30 @@
+{
+ "type": "filament",
+ "name": "Generic TPU for AMS @base",
+ "inherits": "fdm_filament_tpu",
+ "from": "system",
+ "filament_id": "GFU98",
+ "instantiation": "false",
+ "description": "If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.",
+ "filament_cost": [
+ "41.99"
+ ],
+ "filament_density": [
+ "1.26"
+ ],
+ "filament_max_volumetric_speed": [
+ "10.5"
+ ],
+ "filament_retraction_length": [
+ "0.8"
+ ],
+ "filament_type": [
+ "TPU-AMS"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/Generic TPU.json b/resources/profiles/BBL/filament/Generic TPU.json
index 273e917570..f8dc0320b2 100644
--- a/resources/profiles/BBL/filament/Generic TPU.json
+++ b/resources/profiles/BBL/filament/Generic TPU.json
@@ -6,6 +6,7 @@
"filament_id": "GFU99",
"setting_id": "GFSR99",
"instantiation": "true",
+ "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.",
"filament_max_volumetric_speed": [
"3.2"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P 0.2 nozzle.json
index f99a91cfb0..b80e46e151 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P 0.2 nozzle.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"100"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P.json
index 63d6bb3f21..c27df74dbb 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu ABS @BBL P1P.json
@@ -8,9 +8,15 @@
"fan_max_speed": [
"20"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"16"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"100"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json
index ccbfad93a5..f98e7469af 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"11.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json
index a0a6388bcc..e18e63964a 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json
@@ -14,9 +14,15 @@
"fan_min_speed": [
"5"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"11.5"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"overhang_fan_speed": [
"100"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA Marble @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PLA Marble @BBL P1P.json
index 01a5fab4a1..ad0784193b 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PLA Marble @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PLA Marble @BBL P1P.json
@@ -11,6 +11,12 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P 0.2 nozzle.json
index 469caee5cd..c67fe1d5f8 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P 0.2 nozzle.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P 0.2 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"2"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P.json
index fcfc07fd19..7a1fb8c212 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PLA Matte @BBL P1P.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"22"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json
index 500dacbbf3..af07fa05ba 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"18"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json
index 640bb4af9a..72bb17aa43 100644
--- a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json
@@ -11,9 +11,15 @@
"fan_min_speed": [
"50"
],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
"filament_max_volumetric_speed": [
"15"
],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
"hot_plate_temp": [
"65"
],
diff --git a/resources/profiles/BBL/filament/P1P/Generic PA @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Generic PA @BBL P1P.json
index b09cbf6aee..bfaee00f09 100644
--- a/resources/profiles/BBL/filament/P1P/Generic PA @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Generic PA @BBL P1P.json
@@ -6,6 +6,7 @@
"filament_id": "GFN99",
"setting_id": "GFSN98_10",
"instantiation": "true",
+ "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"60"
],
diff --git a/resources/profiles/BBL/filament/P1P/Generic PA-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Generic PA-CF @BBL P1P.json
index 1e17c278ce..92d4992a83 100644
--- a/resources/profiles/BBL/filament/P1P/Generic PA-CF @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Generic PA-CF @BBL P1P.json
@@ -6,6 +6,7 @@
"filament_id": "GFN98",
"setting_id": "GFSN99_10",
"instantiation": "true",
+ "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.",
"fan_cooling_layer_time": [
"5"
],
diff --git a/resources/profiles/BBL/filament/P1P/Generic TPU @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Generic TPU @BBL P1P.json
index effdb2d7f3..1132340068 100644
--- a/resources/profiles/BBL/filament/P1P/Generic TPU @BBL P1P.json
+++ b/resources/profiles/BBL/filament/P1P/Generic TPU @BBL P1P.json
@@ -6,6 +6,7 @@
"filament_id": "GFU99",
"setting_id": "GFSR99_10",
"instantiation": "true",
+ "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.",
"filament_max_volumetric_speed": [
"3.2"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_abs.json b/resources/profiles/BBL/filament/fdm_filament_abs.json
index 74eb871518..c01bfb694c 100644
--- a/resources/profiles/BBL/filament/fdm_filament_abs.json
+++ b/resources/profiles/BBL/filament/fdm_filament_abs.json
@@ -5,6 +5,12 @@
"from": "system",
"instantiation": "false",
"activate_air_filtration": [
+ "1"
+ ],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [
diff --git a/resources/profiles/BBL/filament/fdm_filament_asa.json b/resources/profiles/BBL/filament/fdm_filament_asa.json
index a0da767a75..ce1126adf5 100644
--- a/resources/profiles/BBL/filament/fdm_filament_asa.json
+++ b/resources/profiles/BBL/filament/fdm_filament_asa.json
@@ -5,6 +5,12 @@
"from": "system",
"instantiation": "false",
"activate_air_filtration": [
+ "1"
+ ],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
"0"
],
"cool_plate_temp": [
diff --git a/resources/profiles/BBL/filament/fdm_filament_bvoh.json b/resources/profiles/BBL/filament/fdm_filament_bvoh.json
index 2b481e35d8..10b86375bb 100644
--- a/resources/profiles/BBL/filament/fdm_filament_bvoh.json
+++ b/resources/profiles/BBL/filament/fdm_filament_bvoh.json
@@ -67,6 +67,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"slow_down_min_speed": [
"20"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_common.json b/resources/profiles/BBL/filament/fdm_filament_common.json
index 6ec95db4a8..1e7a813c4b 100644
--- a/resources/profiles/BBL/filament/fdm_filament_common.json
+++ b/resources/profiles/BBL/filament/fdm_filament_common.json
@@ -114,6 +114,21 @@
"full_fan_speed_layer": [
"0"
],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
+ "filament_scarf_height": [
+ "10%"
+ ],
+ "filament_scarf_gap": [
+ "0%"
+ ],
+ "filament_scarf_length": [
+ "10"
+ ],
+ "filament_shrink": [
+ "100%"
+ ],
"hot_plate_temp": [
"60"
],
@@ -138,6 +153,12 @@
"required_nozzle_HRC": [
"3"
],
+ "supertack_plate_temp": [
+ "45"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "45"
+ ],
"slow_down_for_layer_cooling": [
"1"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_eva.json b/resources/profiles/BBL/filament/fdm_filament_eva.json
index 1b2efe2999..5eaf47fd3c 100644
--- a/resources/profiles/BBL/filament/fdm_filament_eva.json
+++ b/resources/profiles/BBL/filament/fdm_filament_eva.json
@@ -6,5 +6,11 @@
"instantiation": "false",
"filament_type": [
"EVA"
+ ],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/fdm_filament_hips.json b/resources/profiles/BBL/filament/fdm_filament_hips.json
index 4d1b09d37a..c7c0ab7d2f 100644
--- a/resources/profiles/BBL/filament/fdm_filament_hips.json
+++ b/resources/profiles/BBL/filament/fdm_filament_hips.json
@@ -16,6 +16,12 @@
"textured_plate_temp": [
"90"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp_initial_layer": [
"0"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pa.json b/resources/profiles/BBL/filament/fdm_filament_pa.json
index 1cd78ec77f..5f0a1ca7fc 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pa.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pa.json
@@ -7,6 +7,12 @@
"activate_air_filtration": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pc.json b/resources/profiles/BBL/filament/fdm_filament_pc.json
index 03bc9e5663..313655fc8a 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pc.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pc.json
@@ -4,6 +4,12 @@
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pctg.json b/resources/profiles/BBL/filament/fdm_filament_pctg.json
index 1b38376293..5c93c7d0d4 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pctg.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pctg.json
@@ -1,64 +1,70 @@
{
- "type": "filament",
- "name": "fdm_filament_pctg",
- "inherits": "fdm_filament_common",
- "from": "system",
- "instantiation": "false",
- "eng_plate_temp": [
- "0"
- ],
- "eng_plate_temp_initial_layer": [
- "0"
- ],
- "fan_cooling_layer_time": [
- "20"
- ],
- "fan_min_speed": [
- "20"
- ],
- "filament_cost": [
- "30"
- ],
- "filament_density": [
- "1.27"
- ],
- "filament_max_volumetric_speed": [
- "25"
- ],
- "filament_type": [
- "PCTG"
- ],
- "hot_plate_temp": [
- "80"
- ],
- "hot_plate_temp_initial_layer": [
- "80"
- ],
- "nozzle_temperature": [
- "255"
- ],
- "nozzle_temperature_initial_layer": [
- "255"
- ],
- "nozzle_temperature_range_high": [
- "260"
- ],
- "nozzle_temperature_range_low": [
- "220"
- ],
- "reduce_fan_stop_start_freq": [
- "1"
- ],
- "temperature_vitrification": [
- "70"
- ],
- "textured_plate_temp": [
- "80"
- ],
- "textured_plate_temp_initial_layer": [
- "80"
- ],
- "filament_start_gcode": [
- "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S180\n{elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S255\n{endif};Prevent PLA from jamming\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
- ]
+ "type": "filament",
+ "name": "fdm_filament_pctg",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "instantiation": "false",
+ "eng_plate_temp": [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "0"
+ ],
+ "fan_cooling_layer_time": [
+ "20"
+ ],
+ "fan_min_speed": [
+ "20"
+ ],
+ "filament_cost": [
+ "30"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_max_volumetric_speed": [
+ "25"
+ ],
+ "filament_type": [
+ "PCTG"
+ ],
+ "hot_plate_temp": [
+ "80"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "80"
+ ],
+ "nozzle_temperature": [
+ "255"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "255"
+ ],
+ "nozzle_temperature_range_high": [
+ "260"
+ ],
+ "nozzle_temperature_range_low": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
+ "temperature_vitrification": [
+ "70"
+ ],
+ "textured_plate_temp": [
+ "80"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "80"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S180\n{elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S255\n{endif};Prevent PLA from jamming\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/filament/fdm_filament_pe.json b/resources/profiles/BBL/filament/fdm_filament_pe.json
index 8ce20df68a..0808a35524 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pe.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pe.json
@@ -64,6 +64,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"slow_down_layer_time": [
"4"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pet.json b/resources/profiles/BBL/filament/fdm_filament_pet.json
index 4a5f6085ca..ef13f4f894 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pet.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pet.json
@@ -49,6 +49,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "70"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "70"
+ ],
"temperature_vitrification": [
"70"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pha.json b/resources/profiles/BBL/filament/fdm_filament_pha.json
index 82519f1b2e..19d143f5a7 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pha.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pha.json
@@ -64,6 +64,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"slow_down_layer_time": [
"4"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pla.json b/resources/profiles/BBL/filament/fdm_filament_pla.json
index a93b981098..9321b9ecad 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pla.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pla.json
@@ -4,62 +4,56 @@
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
- "fan_cooling_layer_time": [
- "100"
+ "additional_cooling_fan_speed": [
+ "70"
],
- "filament_max_volumetric_speed": [
- "12"
- ],
- "filament_density": [
- "1.24"
- ],
- "filament_cost": [
- "20"
+ "close_fan_the_first_x_layers": [
+ "1"
],
"cool_plate_temp": [
"35"
],
+ "cool_plate_temp_initial_layer": [
+ "35"
+ ],
"eng_plate_temp": [
"0"
],
- "hot_plate_temp": [
- "55"
- ],
- "textured_plate_temp": [
- "55"
- ],
- "cool_plate_temp_initial_layer": [
- "35"
- ],
"eng_plate_temp_initial_layer": [
"0"
],
- "hot_plate_temp_initial_layer": [
- "55"
- ],
- "textured_plate_temp_initial_layer": [
- "55"
- ],
- "nozzle_temperature_initial_layer": [
- "220"
- ],
- "reduce_fan_stop_start_freq": [
- "1"
+ "fan_cooling_layer_time": [
+ "100"
],
"fan_min_speed": [
"100"
],
- "overhang_fan_threshold": [
- "50%"
+ "filament_cost": [
+ "20"
],
- "close_fan_the_first_x_layers": [
- "1"
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
+ "filament_scarf_gap": [
+ "15%"
+ ],
+ "hot_plate_temp": [
+ "55"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55"
],
"nozzle_temperature": [
"220"
],
- "temperature_vitrification": [
- "45"
+ "nozzle_temperature_initial_layer": [
+ "220"
],
"nozzle_temperature_range_low": [
"190"
@@ -67,14 +61,26 @@
"nozzle_temperature_range_high": [
"240"
],
- "slow_down_min_speed": [
- "20"
+ "overhang_fan_threshold": [
+ "50%"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
],
"slow_down_layer_time": [
"4"
],
- "additional_cooling_fan_speed": [
- "70"
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "temperature_vitrification": [
+ "45"
+ ],
+ "textured_plate_temp": [
+ "55"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55"
],
"filament_start_gcode": [
"; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
diff --git a/resources/profiles/BBL/filament/fdm_filament_pp.json b/resources/profiles/BBL/filament/fdm_filament_pp.json
index 83a4278250..66927c186a 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pp.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pp.json
@@ -64,6 +64,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"slow_down_layer_time": [
"4"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_ppa.json b/resources/profiles/BBL/filament/fdm_filament_ppa.json
index 23b082b05c..c45e713f34 100644
--- a/resources/profiles/BBL/filament/fdm_filament_ppa.json
+++ b/resources/profiles/BBL/filament/fdm_filament_ppa.json
@@ -7,6 +7,12 @@
"activate_air_filtration": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pps.json b/resources/profiles/BBL/filament/fdm_filament_pps.json
index a3f104b6f3..b8d366193e 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pps.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pps.json
@@ -7,6 +7,12 @@
"chamber_temperatures": [
"60"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp": [
"0"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_pva.json b/resources/profiles/BBL/filament/fdm_filament_pva.json
index 7d0bdf1b4a..2b00903a60 100644
--- a/resources/profiles/BBL/filament/fdm_filament_pva.json
+++ b/resources/profiles/BBL/filament/fdm_filament_pva.json
@@ -70,6 +70,12 @@
"reduce_fan_stop_start_freq": [
"1"
],
+ "supertack_plate_temp": [
+ "35"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "35"
+ ],
"slow_down_layer_time": [
"4"
],
diff --git a/resources/profiles/BBL/filament/fdm_filament_tpu.json b/resources/profiles/BBL/filament/fdm_filament_tpu.json
index 8ec0a4fec3..13a305e762 100644
--- a/resources/profiles/BBL/filament/fdm_filament_tpu.json
+++ b/resources/profiles/BBL/filament/fdm_filament_tpu.json
@@ -10,6 +10,12 @@
"close_fan_the_first_x_layers": [
"1"
],
+ "supertack_plate_temp": [
+ "0"
+ ],
+ "supertack_plate_temp_initial_layer": [
+ "0"
+ ],
"cool_plate_temp": [
"30"
],
diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json
index b198ff4dda..a897bd8aaa 100644
--- a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json
@@ -16,10 +16,11 @@
"Bambu PLA Basic @BBL A1"
],
"default_print_profile": "0.20mm Standard @BBL A1",
+ "enable_long_retraction_when_cut": "2",
"extruder_clearance_height_to_lid": "256",
"extruder_clearance_height_to_rod": "25",
"extruder_clearance_max_radius": "73",
- "extruder_clearance_radius": "73",
+ "extruder_clearance_dist_to_rod": "56.5",
"head_wrap_detect_zone": [
"226x224",
"256x224",
diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json
index 2608b6b731..5319a77f85 100644
--- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json
@@ -17,10 +17,11 @@
"Bambu PLA Basic @BBL A1M"
],
"default_print_profile": "0.20mm Standard @BBL A1M",
+ "enable_long_retraction_when_cut": "2",
"extruder_clearance_height_to_lid": "180",
"extruder_clearance_height_to_rod": "25",
"extruder_clearance_max_radius": "73",
- "extruder_clearance_radius": "73",
+ "extruder_clearance_dist_to_rod": "56.5",
"head_wrap_detect_zone": [
"156x152",
"180x152",
diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json
index 8b9d063dbc..5cee189af5 100644
--- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json
@@ -29,7 +29,6 @@
"nozzle_height": "4.2",
"nozzle_type": "stainless_steel",
"scan_first_layer": "0",
- "support_air_filtration": "1",
"upward_compatible_machine": [
"Bambu Lab P1P 0.4 nozzle",
"Bambu Lab X1 0.4 nozzle",
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json
index 9c1127eec4..2fa72d13f9 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json
@@ -30,5 +30,5 @@
"Bambu Lab X1E 0.2 nozzle",
"Bambu Lab A1 0.2 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json
index a70b7c8f11..90b3f20147 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json
@@ -30,7 +30,6 @@
"nozzle_height": "4.2",
"nozzle_type": "stainless_steel",
"scan_first_layer": "1",
- "support_air_filtration": "1",
"upward_compatible_machine": [
"Bambu Lab P1S 0.4 nozzle",
"Bambu Lab P1P 0.4 nozzle",
@@ -38,7 +37,7 @@
"Bambu Lab X1E 0.4 nozzle",
"Bambu Lab A1 0.4 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n",
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240919 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n",
"machine_end_gcode": ";===== date: 20240528 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos\nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M40 E42 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C46 D10 M80 E46 F10 N80\nM1006 A44 B20 L100 C39 D20 M60 E48 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C48 D10 M60 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A49 B20 L100 C44 D20 M100 E41 F20 N100\nM1006 A0 B20 L100 C0 D20 M60 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M30 E37 F20 N60\nM1006 W\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n",
"change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}\nG17\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nM620.11 S0\n{endif}\nM400\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\nG1 X20 Y50 F21000\nG1 Y-3\n{if toolchange_count == 2}\n; get travel path for change filament\nM620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\nM620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\nM620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\n{if next_extruder < 255}\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM628 S1\nG92 E0\nG1 E{retraction_distances_when_cut[previous_extruder]} F[old_filament_e_feedrate]\nM400\nM629 S1\n{else}\nM620.11 S0\n{endif}\nG92 E0\n{if flush_length_1 > 1}\nM83\n; FLUSH_START\n; always use highest temperature to flush\nM400\n{if filament_type[next_extruder] == \"PETG\"}\nM109 S260\n{elsif filament_type[next_extruder] == \"PVA\"}\nM109 S210\n{else}\nM109 S[nozzle_temperature_range_high]\n{endif}\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_4 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n; FLUSH_START\nM400\nM109 S[new_filament_temp]\nG1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\n; FLUSH_END\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM106 P1 S255\nM400 S3\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X105 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\n\nG1 X70 F10000\nG1 X80 F15000\nG1 X60\nG1 X80\nG1 X60\nG1 X80 ; shake to put down garbage\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z{max_layer_z + 3.0} F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json
index ec5a3b1ea9..5d5d0ea81a 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json
@@ -34,5 +34,5 @@
"Bambu Lab X1E 0.6 nozzle",
"Bambu Lab A1 0.6 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20241023 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json
index fd1aa6bf82..e9002fed0c 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json
@@ -34,5 +34,5 @@
"Bambu Lab X1E 0.8 nozzle",
"Bambu Lab A1 0.8 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json
index a0b54160a5..fc3fbaced3 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json
@@ -31,5 +31,5 @@
"Bambu Lab X1E 0.2 nozzle",
"Bambu Lab A1 0.2 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json
index 6577b3950a..70baeeacec 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json
@@ -28,7 +28,6 @@
"machine_unload_filament_time": "28",
"nozzle_height": "4.2",
"scan_first_layer": "1",
- "support_air_filtration": "1",
"upward_compatible_machine": [
"Bambu Lab P1S 0.4 nozzle",
"Bambu Lab P1P 0.4 nozzle",
@@ -36,7 +35,7 @@
"Bambu Lab X1E 0.4 nozzle",
"Bambu Lab A1 0.4 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4",
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240919 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n",
"machine_end_gcode": ";===== date: 20240528 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos\nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M40 E42 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C46 D10 M80 E46 F10 N80\nM1006 A44 B20 L100 C39 D20 M60 E48 F20 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C39 D10 M60 E39 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A0 B10 L100 C48 D10 M60 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A49 B20 L100 C44 D20 M100 E41 F20 N100\nM1006 A0 B20 L100 C0 D20 M60 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M30 E37 F20 N60\nM1006 W\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n",
"change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}\nG17\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nM620.11 S0\n{endif}\nM400\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\nG1 X20 Y50 F21000\nG1 Y-3\n{if toolchange_count == 2}\n; get travel path for change filament\nM620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\nM620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\nM620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\n{if next_extruder < 255}\n{if long_retractions_when_cut[previous_extruder]}\nM620.11 S1 I[previous_extruder] E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM628 S1\nG92 E0\nG1 E{retraction_distances_when_cut[previous_extruder]} F[old_filament_e_feedrate]\nM400\nM629 S1\n{else}\nM620.11 S0\n{endif}\nG92 E0\n{if flush_length_1 > 1}\nM83\n; FLUSH_START\n; always use highest temperature to flush\nM400\n{if filament_type[next_extruder] == \"PETG\"}\nM109 S260\n{elsif filament_type[next_extruder] == \"PVA\"}\nM109 S210\n{else}\nM109 S[nozzle_temperature_range_high]\n{endif}\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_4 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n; FLUSH_START\nM400\nM109 S[new_filament_temp]\nG1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\n; FLUSH_END\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM106 P1 S255\nM400 S3\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X105 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\n\nG1 X70 F10000\nG1 X80 F15000\nG1 X60\nG1 X80\nG1 X60\nG1 X80 ; shake to put down garbage\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z{max_layer_z + 3.0} F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json
index 2dffc6f94c..02326f033f 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json
@@ -33,5 +33,5 @@
"Bambu Lab X1E 0.6 nozzle",
"Bambu Lab A1 0.6 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20241023 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json
index 4e22e6bc78..2ccd165cb6 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json
@@ -33,5 +33,5 @@
"Bambu Lab X1E 0.8 nozzle",
"Bambu Lab A1 0.8 nozzle"
],
- "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n"
+ "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json
index 3050ab385a..4277bdf3dc 100644
--- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json
+++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json
@@ -37,7 +37,7 @@
"Bambu Lab X1 Carbon 0.4 nozzle",
"Bambu Lab A1 0.4 nozzle"
],
- "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z75\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n\n",
+ "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20240919 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z75\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n",
"machine_end_gcode": ";===== date: 20240402 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\nM960 S5 P0 ; turn off logo lamp\n\n",
"change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1 && (z_hop_types[current_extruder] == 0 || z_hop_types[current_extruder] == 3)}\nG17\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nG1 X70 F21000\nG1 Y245\nG1 Y265 F3000\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\nG1 X90 F3000\nG1 Y255 F4000\nG1 X100 F5000\nG1 X120 F15000\n{if long_retraction_when_cut && retraction_distance_when_cut > 2}\nG1 E-[retraction_distance_when_cut] F200\nM400\n{endif}\nG1 X20 Y50 F21000\nG1 Y-3\n{if toolchange_count == 2}\n; get travel path for change filament\nM620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\nM620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\nM620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\n{if next_extruder < 255}\nM400\n{if long_retraction_when_cut && retraction_distance_when_cut > 2}\nG1 E{retraction_distance_when_cut - 2} F200\nG1 E2 F20\nM400\n{endif}\nG92 E0\n{if flush_length_1 > 1}\nM83\n; FLUSH_START\n; always use highest temperature to flush\nM400\n{if filament_type[next_extruder] == \"PETG\"}\nM109 S260\n{elsif filament_type[next_extruder] == \"PVA\"}\nM109 S210\n{else}\nM109 S[nozzle_temperature_range_high]\n{endif}\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_4 > 1}\n\nG91\nG1 X3 F12000; move aside to extrude\nG90\nM83\n\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n; FLUSH_START\nM400\nM109 S[new_filament_temp]\nG1 E2 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\n; FLUSH_END\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM106 P1 S255\nM400 S3\n\nG1 X70 F5000\nG1 X90 F3000\nG1 Y255 F4000\nG1 X105 F5000\nG1 Y265 F5000\nG1 X70 F10000\nG1 X100 F5000\nG1 X70 F10000\nG1 X100 F5000\n\nG1 X70 F10000\nG1 X80 F15000\nG1 X60\nG1 X80\nG1 X60\nG1 X80 ; shake to put down garbage\nG1 X100 F5000\nG1 X165 F15000; wipe and shake\nG1 Y256 ; move Y to aside, prevent collision\nM400\nG1 Z{max_layer_z + 3.0} F3000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\n"
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json
index 227fb04c57..37a2a12777 100644
--- a/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json
+++ b/resources/profiles/BBL/process/0.10mm Standard @BBL P1P 0.2 nozzle.json
@@ -8,7 +8,6 @@
"description": "It has a small layer height, and results in almost negligible layer lines and high printing quality. It is suitable for most general printing cases.",
"elefant_foot_compensation": "0.15",
"compatible_printers": [
- "Bambu Lab P1P 0.2 nozzle",
- "Bambu Lab P1S 0.2 nozzle"
+ "Bambu Lab P1P 0.2 nozzle"
]
}
\ No newline at end of file
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.06_nozzle_0.2.json b/resources/profiles/BBL/process/fdm_process_bbl_0.06_nozzle_0.2.json
index 0857a48e0e..364bcaa1ee 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.06_nozzle_0.2.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.06_nozzle_0.2.json
@@ -12,6 +12,7 @@
"bridge_flow": "1",
"line_width": "0.22",
"outer_wall_line_width": "0.22",
+ "ironing_inset": "0.11",
"initial_layer_line_width": "0.25",
"sparse_infill_line_width": "0.22",
"inner_wall_line_width": "0.22",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.08_nozzle_0.2.json b/resources/profiles/BBL/process/fdm_process_bbl_0.08_nozzle_0.2.json
index 80670ce3b6..52a1749075 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.08_nozzle_0.2.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.08_nozzle_0.2.json
@@ -12,6 +12,7 @@
"bridge_flow": "1",
"line_width": "0.22",
"outer_wall_line_width": "0.22",
+ "ironing_inset": "0.11",
"initial_layer_line_width": "0.25",
"sparse_infill_line_width": "0.22",
"inner_wall_line_width": "0.22",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.10_nozzle_0.2.json b/resources/profiles/BBL/process/fdm_process_bbl_0.10_nozzle_0.2.json
index 9d54d14c18..020a3f9cc8 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.10_nozzle_0.2.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.10_nozzle_0.2.json
@@ -12,6 +12,7 @@
"bridge_flow": "1",
"line_width": "0.22",
"outer_wall_line_width": "0.22",
+ "ironing_inset": "0.11",
"initial_layer_line_width": "0.25",
"sparse_infill_line_width": "0.22",
"inner_wall_line_width": "0.22",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.12_nozzle_0.2.json b/resources/profiles/BBL/process/fdm_process_bbl_0.12_nozzle_0.2.json
index 9d35f2501e..56aedfd03e 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.12_nozzle_0.2.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.12_nozzle_0.2.json
@@ -12,6 +12,7 @@
"bridge_flow": "1",
"line_width": "0.22",
"outer_wall_line_width": "0.22",
+ "ironing_inset": "0.11",
"initial_layer_line_width": "0.25",
"sparse_infill_line_width": "0.22",
"inner_wall_line_width": "0.22",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.14_nozzle_0.2.json b/resources/profiles/BBL/process/fdm_process_bbl_0.14_nozzle_0.2.json
index 573669d4a5..7c10c6c673 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.14_nozzle_0.2.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.14_nozzle_0.2.json
@@ -12,6 +12,7 @@
"bridge_flow": "1",
"line_width": "0.22",
"outer_wall_line_width": "0.22",
+ "ironing_inset": "0.11",
"initial_layer_line_width": "0.25",
"sparse_infill_line_width": "0.22",
"inner_wall_line_width": "0.22",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.18_nozzle_0.6.json b/resources/profiles/BBL/process/fdm_process_bbl_0.18_nozzle_0.6.json
index 0220f43a0d..31c88af561 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.18_nozzle_0.6.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.18_nozzle_0.6.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.62",
"outer_wall_line_width": "0.62",
+ "ironing_inset": "0.31",
"initial_layer_line_width": "0.62",
"sparse_infill_line_width": "0.62",
"inner_wall_line_width": "0.62",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.6.json b/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.6.json
index 514e31759a..ca62151342 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.6.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.6.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.62",
"outer_wall_line_width": "0.62",
+ "ironing_inset": "0.31",
"initial_layer_line_width": "0.62",
"sparse_infill_line_width": "0.62",
"inner_wall_line_width": "0.62",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.8.json b/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.8.json
index 5fedaf53d6..88e1f68075 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.8.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.24_nozzle_0.8.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.82",
"outer_wall_line_width": "0.82",
+ "ironing_inset": "0.41",
"initial_layer_line_width": "0.82",
"sparse_infill_line_width": "0.82",
"inner_wall_line_width": "0.82",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.30_nozzle_0.6.json b/resources/profiles/BBL/process/fdm_process_bbl_0.30_nozzle_0.6.json
index 26b39f3736..08476dbb78 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.30_nozzle_0.6.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.30_nozzle_0.6.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.62",
"outer_wall_line_width": "0.62",
+ "ironing_inset": "0.31",
"initial_layer_line_width": "0.62",
"sparse_infill_line_width": "0.62",
"inner_wall_line_width": "0.62",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.32_nozzle_0.8.json b/resources/profiles/BBL/process/fdm_process_bbl_0.32_nozzle_0.8.json
index 0f5913b2eb..c1622d28f5 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.32_nozzle_0.8.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.32_nozzle_0.8.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.82",
"outer_wall_line_width": "0.82",
+ "ironing_inset": "0.41",
"initial_layer_line_width": "0.82",
"sparse_infill_line_width": "0.82",
"inner_wall_line_width": "0.82",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.36_nozzle_0.6.json b/resources/profiles/BBL/process/fdm_process_bbl_0.36_nozzle_0.6.json
index f94531fbe3..f9c917dfc5 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.36_nozzle_0.6.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.36_nozzle_0.6.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.62",
"outer_wall_line_width": "0.62",
+ "ironing_inset": "0.31",
"initial_layer_line_width": "0.62",
"sparse_infill_line_width": "0.62",
"inner_wall_line_width": "0.62",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.40_nozzle_0.8.json b/resources/profiles/BBL/process/fdm_process_bbl_0.40_nozzle_0.8.json
index 3e0d8b147e..be6eb5944a 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.40_nozzle_0.8.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.40_nozzle_0.8.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.82",
"outer_wall_line_width": "0.82",
+ "ironing_inset": "0.41",
"initial_layer_line_width": "0.82",
"sparse_infill_line_width": "0.82",
"inner_wall_line_width": "0.82",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.42_nozzle_0.6.json b/resources/profiles/BBL/process/fdm_process_bbl_0.42_nozzle_0.6.json
index 07120eef78..d879b17b8b 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.42_nozzle_0.6.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.42_nozzle_0.6.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.62",
"outer_wall_line_width": "0.62",
+ "ironing_inset": "0.31",
"initial_layer_line_width": "0.62",
"sparse_infill_line_width": "0.62",
"inner_wall_line_width": "0.62",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.48_nozzle_0.8.json b/resources/profiles/BBL/process/fdm_process_bbl_0.48_nozzle_0.8.json
index 3a77fbf006..e9955abd55 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.48_nozzle_0.8.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.48_nozzle_0.8.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.82",
"outer_wall_line_width": "0.82",
+ "ironing_inset": "0.41",
"initial_layer_line_width": "0.82",
"sparse_infill_line_width": "0.82",
"inner_wall_line_width": "0.82",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_0.56_nozzle_0.8.json b/resources/profiles/BBL/process/fdm_process_bbl_0.56_nozzle_0.8.json
index 3970ac5ac7..99fb6bf6e7 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_0.56_nozzle_0.8.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_0.56_nozzle_0.8.json
@@ -9,6 +9,7 @@
"bridge_flow": "1",
"line_width": "0.82",
"outer_wall_line_width": "0.82",
+ "ironing_inset": "0.41",
"initial_layer_line_width": "0.82",
"sparse_infill_line_width": "0.82",
"inner_wall_line_width": "0.82",
diff --git a/resources/profiles/BBL/process/fdm_process_bbl_common.json b/resources/profiles/BBL/process/fdm_process_bbl_common.json
index fc377a0b86..d77980a29d 100644
--- a/resources/profiles/BBL/process/fdm_process_bbl_common.json
+++ b/resources/profiles/BBL/process/fdm_process_bbl_common.json
@@ -59,6 +59,7 @@
"tree_support_branch_diameter": "2",
"tree_support_branch_angle": "45",
"tree_support_wall_count": "0",
+ "max_bridge_length": "0",
"top_surface_pattern": "monotonicline",
"top_surface_acceleration": "2000",
"top_surface_speed": "200",
diff --git a/resources/profiles/BBL/process/fdm_process_common.json b/resources/profiles/BBL/process/fdm_process_common.json
index c68411dbbe..1723f8835e 100644
--- a/resources/profiles/BBL/process/fdm_process_common.json
+++ b/resources/profiles/BBL/process/fdm_process_common.json
@@ -13,6 +13,7 @@
"bridge_no_support": "0",
"elefant_foot_compensation": "0.1",
"outer_wall_line_width": "0.42",
+ "ironing_inset": "0.21",
"outer_wall_speed": "120",
"line_width": "0.45",
"infill_direction": "45",
@@ -69,5 +70,6 @@
"xy_contour_compensation": "0",
"compatible_printers": [],
"smooth_coefficient": "80",
- "overhang_totally_speed": "24"
+ "overhang_totally_speed": "19",
+ "scarf_angle_threshold": "155"
}
\ No newline at end of file
diff --git a/resources/profiles/Comgrow.json b/resources/profiles/Comgrow.json
index 7eb5f7a6d8..0321ab16c9 100644
--- a/resources/profiles/Comgrow.json
+++ b/resources/profiles/Comgrow.json
@@ -4,6 +4,10 @@
"force_update": "0",
"description": "Comgrow configurations",
"machine_model_list": [
+ {
+ "name": "Comgrow T300",
+ "sub_path": "machine/Comgrow T300.json"
+ },
{
"name": "Comgrow T500",
"sub_path": "machine/Comgrow T500.json"
@@ -18,6 +22,10 @@
"name": "fdm_process_comgrow_common",
"sub_path": "process/fdm_process_comgrow_common.json"
},
+ {
+ "name": "0.20mm Optimal @Comgrow T300 - official",
+ "sub_path": "process/0.20mm Optimal @Comgrow T300 0.4 - official.json"
+ },
{
"name": "0.16mm Optimal @Comgrow T500",
"sub_path": "process/0.16mm Opitmal @Comgrow T500 0.6.json"
@@ -100,6 +108,10 @@
{
"name": "Comgrow Generic ABS",
"sub_path": "filament/Comgrow Generic ABS.json"
+ },
+ {
+ "name": "Comgrow T300 PLA",
+ "sub_path": "filament/Comgrow T300 PLA.json"
}
],
"machine_list": [
@@ -111,6 +123,10 @@
"name": "fdm_comgrow_common",
"sub_path": "machine/fdm_comgrow_common.json"
},
+ {
+ "name": "Comgrow T300 0.4 nozzle",
+ "sub_path": "machine/Comgrow T300 0.4 nozzle.json"
+ },
{
"name": "Comgrow T500 0.4 nozzle",
"sub_path": "machine/Comgrow T500 0.4 nozzle.json"
diff --git a/resources/profiles/Comgrow/Comgrow T300_cover.png b/resources/profiles/Comgrow/Comgrow T300_cover.png
new file mode 100644
index 0000000000..d1622e4b40
Binary files /dev/null and b/resources/profiles/Comgrow/Comgrow T300_cover.png differ
diff --git a/resources/profiles/Comgrow/comgrow_t300_buildplate_model.stl b/resources/profiles/Comgrow/comgrow_t300_buildplate_model.stl
new file mode 100644
index 0000000000..1c5306b2ba
Binary files /dev/null and b/resources/profiles/Comgrow/comgrow_t300_buildplate_model.stl differ
diff --git a/resources/profiles/Comgrow/comgrow_t300_buildplate_texture.png b/resources/profiles/Comgrow/comgrow_t300_buildplate_texture.png
new file mode 100644
index 0000000000..f0da3b2543
Binary files /dev/null and b/resources/profiles/Comgrow/comgrow_t300_buildplate_texture.png differ
diff --git a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json
new file mode 100644
index 0000000000..5d415525c1
--- /dev/null
+++ b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json
@@ -0,0 +1,48 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Comgrow T300 PLA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Comgrow Generic PLA",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["24"],
+ "filament_retraction_length": ["0.5"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Comgrow T300 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "60"
+ ],
+ "fan_cooling_layer_time": [
+ "50"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "260"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "65"
+ ],
+ "hot_plate_temp": [
+ "65"
+ ]
+}
diff --git a/resources/profiles/Comgrow/machine/Comgrow T300 0.4 nozzle.json b/resources/profiles/Comgrow/machine/Comgrow T300 0.4 nozzle.json
new file mode 100644
index 0000000000..7a898f548f
--- /dev/null
+++ b/resources/profiles/Comgrow/machine/Comgrow T300 0.4 nozzle.json
@@ -0,0 +1,88 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "Comgrow T300 0.4 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_comgrow_common",
+ "printer_model": "Comgrow T300",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "printable_height": "350",
+ "thumbnails": [
+ "64x64",
+ "160x160",
+ "176x176"
+ ],
+ "thumbnails_format": "JPG",
+ "before_layer_change_gcode": "",
+ "retraction_length": [
+ "0.8"
+ ],
+ "machine_max_acceleration_e": [
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000"
+ ],
+ "machine_max_acceleration_x": [
+ "12000"
+ ],
+ "machine_max_acceleration_y": [
+ "12000"
+ ],
+ "machine_max_acceleration_z": [
+ "500"
+ ],
+ "machine_max_speed_x": [
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500"
+ ],
+ "machine_max_speed_e": [
+ "50"
+ ],
+ "machine_max_speed_z": [
+ "20"
+ ],
+ "machine_max_jerk_x": [
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "9"
+ ],
+ "machine_max_jerk_z": [
+ "0.25"
+ ],
+ "machine_max_jerk_e": [
+ "3"
+ ],
+ "z_hop": [
+ "0.4"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "retract_lift_below": [
+ "348"
+ ],
+ "retraction_speed": [
+ "50"
+ ],
+ "deretraction_speed": [
+ "50"
+ ],
+ "machine_start_gcode": "G28\nG90\nG1 X0 F3000\nG1 Z0.300 F600\nG1 Y0 F3000\nG91 \nG1 X-2 Y-6 F3000\nSTART_PRINT\nM400\nG90\nM83\nG90\nG1 X0 F3000\nG1 Z0.300 F600\nG1 Y0 F3000\nG91 \nG1 X-2 Y-6 F3000\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG1 E25 F480\nG4 P1000\nG1 E-0.200 Z5 F600\nG1 X90.000 F6000\nG1 Z-5.200 F600\nG1 X60.000 E14.4 F3000\nG1 X60.000 E9.6 F3000\nG1 Y1 E0.16 F3000\nG1 X-60.000 E9.6 F3000\nG1 X-60.000 E14.4 F3000\nG1 Y1 E0.16 F3000\nG1 X60.000 E14.4 F3000\nG1 X60.000 E9.6 F3000\nG1 E-0.100 Z0.5 F600\nM400\n\n",
+ "machine_end_gcode": "END_PRINT\n"
+}
diff --git a/resources/profiles/Comgrow/machine/Comgrow T300.json b/resources/profiles/Comgrow/machine/Comgrow T300.json
new file mode 100644
index 0000000000..ccf4ce5e05
--- /dev/null
+++ b/resources/profiles/Comgrow/machine/Comgrow T300.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Comgrow T300",
+ "model_id": "Comgrow_T300",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "Comgrow",
+ "bed_model": "comgrow_t300_buildplate_model.stl",
+ "bed_texture": "comgrow_t300_buildplate_texture.png",
+ "hotend_model": "",
+ "default_materials": "Comgrow T300 PLA"
+}
diff --git a/resources/profiles/Comgrow/process/0.20mm Optimal @Comgrow T300 0.4 - official.json b/resources/profiles/Comgrow/process/0.20mm Optimal @Comgrow T300 0.4 - official.json
new file mode 100644
index 0000000000..5831c23cfe
--- /dev/null
+++ b/resources/profiles/Comgrow/process/0.20mm Optimal @Comgrow T300 0.4 - official.json
@@ -0,0 +1,120 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.20mm Optimal @Comgrow T300 0.4 - official",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_comgrow_common",
+ "adaptive_layer_height": "1",
+ "reduce_crossing_wall": "0",
+ "layer_height": "0.2",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_layers": "3",
+ "bottom_shell_thickness": "0",
+ "bridge_flow": "0.95",
+ "bridge_speed": "50",
+ "internal_bridge_speed": "50",
+ "brim_width": "5",
+ "brim_type": "outer_only",
+ "brim_object_gap": "0",
+ "compatible_printers_condition": "",
+ "default_acceleration": "8000",
+ "print_sequence": "by layer",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "enable_arc_fitting": "0",
+ "outer_wall_line_width": "0.42",
+ "wall_infill_order": "outer wall/inner wall/infill",
+ "line_width": "0.42",
+ "infill_direction": "45",
+ "sparse_infill_density": "10%",
+ "sparse_infill_pattern": "grid",
+ "initial_layer_line_width": "0.5",
+ "initial_layer_print_height": "0.3",
+ "infill_combination": "0",
+ "sparse_infill_line_width": "0.5",
+ "infill_wall_overlap": "25%",
+ "interface_shells": "0",
+ "ironing_flow": "15%",
+ "ironing_spacing": "0.25",
+ "ironing_speed": "15",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "detect_overhang_wall": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "10",
+ "inner_wall_line_width": "0.45",
+ "wall_loops": "2",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "3",
+ "skirt_height": "1",
+ "skirt_loops": "1",
+ "minimum_sparse_infill_area": "10",
+ "internal_solid_infill_line_width": "0.45",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.012",
+ "support_type": "tree(auto)",
+ "support_style": "snug",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.15",
+ "support_filament": "0",
+ "support_line_width": "0.45",
+ "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": "80",
+ "support_threshold_angle": "30",
+ "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.45",
+ "top_shell_layers": "4",
+ "top_shell_thickness": "0.8",
+ "initial_layer_speed": "30",
+ "initial_layer_infill_speed": "60",
+ "initial_layer_travel_speed": "60%",
+ "outer_wall_speed": "150",
+ "inner_wall_speed": "300",
+ "internal_solid_infill_speed": "180",
+ "top_surface_speed": "180",
+ "gap_infill_speed": "150",
+ "sparse_infill_speed": "300",
+ "travel_speed": "350",
+ "enable_prime_tower": "0",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "seam_gap": "5%",
+ "outer_wall_acceleration": "5000",
+ "inner_wall_acceleration": "6000",
+ "initial_layer_acceleration": "5000",
+ "top_surface_acceleration": "6000",
+ "travel_acceleration": "8000",
+ "wall_generator": "classic",
+ "slow_down_layers": "3",
+ "bottom_solid_infill_flow_ratio": "1.25",
+ "accel_to_decel_enable": "0",
+ "accel_to_decel_factor": "30%",
+ "skirt_speed": "0",
+ "gcode_label_objects": "1",
+ "exclude_object": "1",
+ "compatible_printers": [
+ "Comgrow T300 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Creality/filament/Creality Generic TPU.json b/resources/profiles/Creality/filament/Creality Generic TPU.json
index ff93417668..497c9fa654 100644
--- a/resources/profiles/Creality/filament/Creality Generic TPU.json
+++ b/resources/profiles/Creality/filament/Creality Generic TPU.json
@@ -16,10 +16,12 @@
"Creality K1 Max (0.4 nozzle)",
"Creality K1 Max (0.6 nozzle)",
"Creality K1 Max (0.8 nozzle)",
- "Creality Sermoon V1 0.4 nozzle",
+ "Creality Sermoon V1 0.4 nozzle",
"Creality CR-10 SE 0.2 nozzle",
- "Creality CR-10 SE 0.4 nozzle",
- "Creality CR-10 SE 0.6 nozzle",
- "Creality CR-10 SE 0.8 nozzle"
+ "Creality CR-10 SE 0.4 nozzle",
+ "Creality CR-10 SE 0.6 nozzle",
+ "Creality CR-10 SE 0.8 nozzle",
+ "Creality Ender-3 S1 Pro 0.4 nozzle",
+ "Creality Ender-3 S1 0.4 nozzle"
]
}
diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json
index 1ecafe3f8d..4911adffb7 100644
--- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json
@@ -88,10 +88,10 @@
"2"
],
"max_layer_height": [
- "0.32"
+ "0.16"
],
"min_layer_height": [
- "0.08"
+ "0.04"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -125,4 +125,4 @@
"96x96",
"300x300"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json
index 5f56e1ff87..fbcb5d3921 100644
--- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json
@@ -88,10 +88,10 @@
"2"
],
"max_layer_height": [
- "0.32"
+ "0.48"
],
"min_layer_height": [
- "0.08"
+ "0.12"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -125,4 +125,4 @@
"96x96",
"300x300"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json
index 00d3f3ff44..71fa0f5db4 100644
--- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json
@@ -88,10 +88,10 @@
"2"
],
"max_layer_height": [
- "0.32"
+ "0.64"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -125,4 +125,4 @@
"96x96",
"300x300"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json
index 84b0aa585b..020a23436d 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.16"
],
"min_layer_height": [
- "0.08"
+ "0.04"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json
index 3cd5410693..3ca555c031 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.48"
],
"min_layer_height": [
- "0.08"
+ "0.12"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json
index 5d0f0b674f..1f6e3c34ef 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.64"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json
index 9cd139b34e..bef8c38f3d 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.16"
],
"min_layer_height": [
- "0.08"
+ "0.04"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json
index 759243c2b7..268a063383 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.48"
],
"min_layer_height": [
- "0.08"
+ "0.12"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json
index e807d8f2f0..b49092d49e 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json
@@ -81,10 +81,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.64"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json
index 158e30b6e7..b8fc2bc851 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json
@@ -78,10 +78,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.16"
],
"min_layer_height": [
- "0.08"
+ "0.04"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling \nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json
index 445e0b0bc3..f774ae2713 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json
@@ -78,10 +78,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.48"
],
"min_layer_height": [
- "0.08"
+ "0.12"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -111,4 +111,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json
index f8930b0d96..bd4add3b08 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json
@@ -79,10 +79,10 @@
"0.4"
],
"max_layer_height": [
- "0.36"
+ "0.64"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -112,4 +112,4 @@
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0",
"machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
"scan_first_layer": "0"
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json
index 5c8c2b73b6..b9a5d7fc8b 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json
@@ -84,10 +84,10 @@
"0.4"
],
"max_layer_height": [
- "0.32"
+ "0.16"
],
"min_layer_height": [
- "0.08"
+ "0.04"
],
"retraction_minimum_travel": [
"2"
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json
index ccc53b8c90..ae639af95a 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json
@@ -84,10 +84,10 @@
"0.4"
],
"max_layer_height": [
- "0.32"
+ "0.48"
],
"min_layer_height": [
- "0.08"
+ "0.12"
],
"retraction_minimum_travel": [
"2"
diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json
index f5e565f0cd..8833fd9ecd 100644
--- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json
@@ -84,10 +84,10 @@
"0.4"
],
"max_layer_height": [
- "0.32"
+ "0.64"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"retraction_minimum_travel": [
"2"
diff --git a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json
index 2c980a66aa..0a15d1d0d9 100644
--- a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json
+++ b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json
@@ -86,7 +86,7 @@
"0.5"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -130,4 +130,4 @@
"100x100",
"320x320"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json
index e31c188086..c7520321c5 100644
--- a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json
+++ b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json
@@ -87,7 +87,7 @@
"0.5"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -131,4 +131,4 @@
"100x100",
"320x320"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json
index 6788e0c5ec..d96df6c6d3 100644
--- a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json
@@ -87,7 +87,7 @@
"0.5"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
@@ -131,4 +131,4 @@
"100x100",
"320x320"
]
-}
\ No newline at end of file
+}
diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json
index bdd7bb0473..2461c90711 100644
--- a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json
+++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json
@@ -87,7 +87,7 @@
"0.56"
],
"min_layer_height": [
- "0.08"
+ "0.16"
],
"printer_settings_id": "Creality",
"retraction_minimum_travel": [
diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json
index 22a507b289..d3f38dc64f 100644
--- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json
+++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
index ec95e5dd99..73c403deda 100644
--- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
+++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear Reborn3 0.4 nozzle",
diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json
index 7f00939382..2afb746d58 100644
--- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
index 4157771395..aabb4c3afd 100644
--- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear S1 0.4 nozzle"
diff --git a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json
index 141c1caf15..bc3271196c 100644
--- a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
index e6e53290b3..947b30484d 100644
--- a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"FlyingBear S1 0.4 nozzle"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs @S1.json
index 2b7ad42520..4f9a44a409 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs @S1.json
@@ -50,7 +50,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "230"
+ "250"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"80"
],
"nozzle_temperature": [
- "230"
+ "250"
],
"temperature_vitrification": [
"110"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs_other @S1.json
index d2e30901f6..807d3139e8 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_abs_other @S1.json
@@ -50,7 +50,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "250"
+ "260"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"80"
],
"nozzle_temperature": [
- "250"
+ "260"
],
"temperature_vitrification": [
"110"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa @S1.json
index 4cc9edb309..7902947c11 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa @S1.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -68,7 +68,7 @@
"40"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"108"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa_other @S1.json
index e6e6810b6a..406073c512 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pa_other @S1.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "260"
+ "270"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -68,7 +68,7 @@
"40"
],
"nozzle_temperature": [
- "260"
+ "270"
],
"temperature_vitrification": [
"108"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc @S1.json
index 977729341f..8d73e7ec19 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc @S1.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -71,7 +71,7 @@
"60"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"140"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc_other @S1.json
index 731c700f5e..3d874c4b04 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pc_other @S1.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "260"
+ "270"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -71,7 +71,7 @@
"60"
],
"nozzle_temperature": [
- "260"
+ "270"
],
"temperature_vitrification": [
"140"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet @S1.json
index 09d5310c17..2779a0e9f2 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet @S1.json
@@ -53,7 +53,7 @@
"30"
],
"nozzle_temperature_initial_layer": [
- "220"
+ "245"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"90"
],
"nozzle_temperature": [
- "220"
+ "245"
],
"temperature_vitrification": [
"80"
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet_other @S1.json
index e5abf0d738..f8c4494332 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pet_other @S1.json
@@ -53,7 +53,7 @@
"30"
],
"nozzle_temperature_initial_layer": [
- "230"
+ "255"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"90"
],
"nozzle_temperature": [
- "230"
+ "255"
],
"temperature_vitrification": [
"80"
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
index c7b0cf5b7f..979b1fd21a 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla @S1.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
index 0d863dbccf..258291b529 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper @S1.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
index 84a6c7895b..f3a30afc35 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_Hyper_other @S1.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
index 8966450832..5e3de73ae1 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_pla_other @S1.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu @S1.json
index cb6104e08c..32ed84f0c9 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu @S1.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "210"
+ "230"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "210"
+ "230"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu_other @S1.json b/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu_other @S1.json
index 2f449cb2f2..53b49f7857 100644
--- a/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu_other @S1.json
+++ b/resources/profiles/FlyingBear/filament/S1/fdm_filament_tpu_other @S1.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "220"
+ "230"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "220"
+ "230"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_abs.json b/resources/profiles/FlyingBear/filament/fdm_filament_abs.json
index 23952b651f..8314c953c0 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_abs.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_abs.json
@@ -50,7 +50,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "230"
+ "250"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"80"
],
"nozzle_temperature": [
- "230"
+ "250"
],
"temperature_vitrification": [
"110"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pa.json b/resources/profiles/FlyingBear/filament/fdm_filament_pa.json
index 79003f4129..d4a2ad1183 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pa.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pa.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -68,7 +68,7 @@
"40"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"108"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pc.json b/resources/profiles/FlyingBear/filament/fdm_filament_pc.json
index 589ae19b4e..a1edd95671 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pc.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pc.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -71,7 +71,7 @@
"60"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"140"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pet.json b/resources/profiles/FlyingBear/filament/fdm_filament_pet.json
index 389942acf7..8beaffd58b 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pet.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pet.json
@@ -53,7 +53,7 @@
"30"
],
"nozzle_temperature_initial_layer": [
- "220"
+ "245"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"90"
],
"nozzle_temperature": [
- "220"
+ "245"
],
"temperature_vitrification": [
"80"
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pla.json b/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
index f1fe0ff99b..4c42035fc3 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pla.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json b/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
index 4a3150818a..02b6187305 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_pla_Hyper.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/filament/fdm_filament_tpu.json b/resources/profiles/FlyingBear/filament/fdm_filament_tpu.json
index 6a335be746..cc8aee7552 100644
--- a/resources/profiles/FlyingBear/filament/fdm_filament_tpu.json
+++ b/resources/profiles/FlyingBear/filament/fdm_filament_tpu.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "210"
+ "230"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "210"
+ "230"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
index e8452b5c24..ffc1a0bbe7 100644
--- a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
+++ b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1 0.4 nozzle.json
@@ -207,6 +207,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
index 7f2590d8d3..dba7278dd8 100644
--- a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
+++ b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json
@@ -112,7 +112,7 @@
"0"
],
"machine_pause_gcode": "PAUSE",
- "machine_start_gcode": ";V1.1\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
+ "machine_start_gcode": ";R3_V1.1.0-20241115\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nM190 S[bed_temperature_initial_layer_single] \nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
"max_layer_height": [
"0.28"
],
diff --git a/resources/profiles/FlyingBear/machine/fdm_machine_common.json b/resources/profiles/FlyingBear/machine/fdm_machine_common.json
index e11e4e47e0..e6119fa451 100644
--- a/resources/profiles/FlyingBear/machine/fdm_machine_common.json
+++ b/resources/profiles/FlyingBear/machine/fdm_machine_common.json
@@ -113,7 +113,7 @@
"0"
],
"machine_pause_gcode": "PAUSE",
- "machine_start_gcode": ";V1.1\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
+ "machine_start_gcode": ";R3_V1.1.0-20241115\n\nM140 S[bed_temperature_initial_layer_single] \nM104 S135\nG28\nG4 P200\nM190 S[bed_temperature_initial_layer_single] \nZ_TILT_ADJUST\nG90\nG1 X150 Y150 F3000\nG28 Z\nG1 X50 Y-4 F2500\nM109 S[nozzle_temperature_initial_layer]\nM190 S[bed_temperature_initial_layer_single] \nPRINT_START",
"max_layer_height": [
"0.28"
],
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
index 39001ee125..483fa64e92 100644
--- a/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.08mm Extra Fine @FlyingBear Reborn3.json
@@ -5,21 +5,24 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
- "overhang_1_4_speed": "60",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "9",
"top_shell_thickness": "0.8",
"tree_support_wall_count": "1",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "120",
+ "outer_wall_speed": "60",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "150",
"layer_height": "0.08",
"print_settings_id": "0.08mm Extra Fine @InfiMech TX",
- "sparse_infill_speed": "450",
+ "sparse_infill_speed": "150",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
index 1000d06175..56a649735c 100644
--- a/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.12mm Fine @FlyingBear Reborn3.json
@@ -5,21 +5,24 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "5",
"top_shell_thickness": "0.6",
"tree_support_wall_count": "0",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "180",
+ "outer_wall_speed": "80",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_speed": "180",
+ "top_surface_speed": "150",
"layer_height": "0.12",
"print_settings_id": "0.12mm Fine @InfiMech TX",
- "sparse_infill_speed": "400",
+ "sparse_infill_speed": "180",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json b/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
index f24fa3ca22..22ceae74e7 100644
--- a/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
+++ b/resources/profiles/FlyingBear/process/0.16mm Optimal @FlyingBear Reborn3.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
@@ -15,8 +16,9 @@
"bridge_speed": "25",
"brim_object_gap": "0.1",
"exclude_object": "1",
- "gap_infill_speed": "300",
- "inner_wall_speed": "300",
+ "gap_infill_speed": "250",
+ "inner_wall_speed": "250",
+ "outer_wall_speed": "120",
"internal_bridge_speed": "50",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_speed": "300",
diff --git a/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
index 8fae3c93c6..1930525085 100644
--- a/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.08mm Extra Fine @FlyingBear S1.json
@@ -6,21 +6,24 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common_S1",
-
+
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "9",
"top_shell_thickness": "0.8",
"tree_support_wall_count": "1",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "120",
+ "outer_wall_speed": "60",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "150",
"layer_height": "0.08",
"print_settings_id": "0.08mm Extra Fine @FlyingBear S1",
- "sparse_infill_speed": "450",
+ "sparse_infill_speed": "150",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
index ca70860ca1..0deb01db1b 100644
--- a/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.12mm Fine @FlyingBear S1.json
@@ -6,20 +6,23 @@
"instantiation": "true",
"inherits": "fdm_process_common_S1",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "5",
"top_shell_thickness": "0.6",
"tree_support_wall_count": "0",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "180",
+ "outer_wall_speed": "80",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_speed": "180",
+ "top_surface_speed": "150",
"layer_height": "0.12",
"print_settings_id": "0.12mm Fine @FlyingBear S1",
- "sparse_infill_speed": "400",
+ "sparse_infill_speed": "180",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json b/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
index d19bf46834..a8afda5cf2 100644
--- a/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
+++ b/resources/profiles/FlyingBear/process/S1/0.16mm Optimal @FlyingBear S1.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common_S1",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
@@ -15,8 +16,9 @@
"bridge_speed": "25",
"brim_object_gap": "0.1",
"exclude_object": "1",
- "gap_infill_speed": "300",
- "inner_wall_speed": "300",
+ "gap_infill_speed": "250",
+ "inner_wall_speed": "250",
+ "outer_wall_speed": "120",
"internal_bridge_speed": "50",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_speed": "300",
diff --git a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
index 0e5c4be0a9..b1ac2c11c4 100644
--- a/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
+++ b/resources/profiles/FlyingBear/process/S1/fdm_process_common_S1.json
@@ -24,7 +24,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -123,6 +123,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -130,7 +131,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/FlyingBear/process/fdm_process_common.json b/resources/profiles/FlyingBear/process/fdm_process_common.json
index 656bbe92ed..43b5ade20d 100644
--- a/resources/profiles/FlyingBear/process/fdm_process_common.json
+++ b/resources/profiles/FlyingBear/process/fdm_process_common.json
@@ -24,7 +24,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -123,6 +123,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -130,7 +131,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json
index 189f9e5bf9..64a8b8c690 100644
--- a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json
index 94a814487e..9c2b1a760d 100644
--- a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json
@@ -15,6 +15,9 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
"0.03"
],
diff --git a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json
index 69e25cfabe..17def3af4d 100644
--- a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json
index d63d21053b..0318cf2be1 100644
--- a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json
@@ -15,6 +15,9 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
"0.03"
],
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet @HSN.json
index f6822a8d5b..7a47ea63bb 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet @HSN.json
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet_other @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet_other @HSN.json
index 21f3c5e0c5..ad29db7845 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet_other @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pet_other @HSN.json
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla @HSN.json
index 4f5ac07e4b..81e93f5727 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla @HSN.json
@@ -47,7 +47,7 @@
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper @HSN.json
index 12a4038700..912f4671fb 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper @HSN.json
@@ -47,7 +47,7 @@
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper_other @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper_other @HSN.json
index 2d5d37b43e..b532a2f483 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper_other @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_Hyper_other @HSN.json
@@ -47,7 +47,7 @@
"60"
],
"nozzle_temperature_initial_layer": [
- "215"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "215"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_other @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_other @HSN.json
index ff0570d0a0..8547c49086 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_other @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_pla_other @HSN.json
@@ -47,7 +47,7 @@
"60"
],
"nozzle_temperature_initial_layer": [
- "215"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "215"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu @HSN.json
index 677ca17ee3..89677af930 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu @HSN.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "215"
+ "230"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "215"
+ "230"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu_other @HSN.json b/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu_other @HSN.json
index 665436c38f..2148cf1cb4 100644
--- a/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu_other @HSN.json
+++ b/resources/profiles/InfiMech/filament/HSN/fdm_filament_tpu_other @HSN.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "225"
+ "240"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "225"
+ "240"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json b/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json
index 2657c29550..4789f01730 100644
--- a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json
+++ b/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
index 1dabc7caff..565d1d0749 100644
--- a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
+++ b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"InfiMech TX 0.4 nozzle"
diff --git a/resources/profiles/InfiMech/filament/Other PETG.json b/resources/profiles/InfiMech/filament/Other PETG.json
index 7a089f22e3..f047ba8408 100644
--- a/resources/profiles/InfiMech/filament/Other PETG.json
+++ b/resources/profiles/InfiMech/filament/Other PETG.json
@@ -16,7 +16,7 @@
"30"
],
"overhang_fan_speed": [
- "90"
+ "100"
],
"overhang_fan_threshold": [
"10%"
@@ -31,7 +31,7 @@
"20"
],
"slow_down_layer_time": [
- "8"
+ "12"
],
"filament_flow_ratio": [
"0.94"
diff --git a/resources/profiles/InfiMech/filament/Other PLA.json b/resources/profiles/InfiMech/filament/Other PLA.json
index d27fcad164..33cc64a5a0 100644
--- a/resources/profiles/InfiMech/filament/Other PLA.json
+++ b/resources/profiles/InfiMech/filament/Other PLA.json
@@ -15,8 +15,11 @@
"slow_down_layer_time": [
"8"
],
+ "enable_pressure_advance": [
+ "0"
+ ],
"pressure_advance": [
- "0.084"
+ "0.032"
],
"compatible_printers": [
"InfiMech TX 0.4 nozzle"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_abs.json b/resources/profiles/InfiMech/filament/fdm_filament_abs.json
index 94bfd40bdf..47bfc4d1e7 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_abs.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_abs.json
@@ -50,7 +50,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "230"
+ "250"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"80"
],
"nozzle_temperature": [
- "230"
+ "250"
],
"temperature_vitrification": [
"110"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_abs_other.json b/resources/profiles/InfiMech/filament/fdm_filament_abs_other.json
index 16da216b23..d5d3f0f6a3 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_abs_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_abs_other.json
@@ -50,7 +50,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "250"
+ "260"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"80"
],
"nozzle_temperature": [
- "250"
+ "260"
],
"temperature_vitrification": [
"110"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pa.json b/resources/profiles/InfiMech/filament/fdm_filament_pa.json
index 1d88d092c6..dda55919b3 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pa.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pa.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -68,7 +68,7 @@
"40"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"108"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pa_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pa_other.json
index c1f5ab9d4e..cd89deefa7 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pa_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pa_other.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "260"
+ "270"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -68,7 +68,7 @@
"40"
],
"nozzle_temperature": [
- "260"
+ "270"
],
"temperature_vitrification": [
"108"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pc.json b/resources/profiles/InfiMech/filament/fdm_filament_pc.json
index 42d59f44da..90ce066474 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pc.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pc.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "240"
+ "260"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -71,7 +71,7 @@
"60"
],
"nozzle_temperature": [
- "240"
+ "260"
],
"temperature_vitrification": [
"140"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pc_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pc_other.json
index 88e8e8cb1a..9471da85bc 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pc_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pc_other.json
@@ -53,7 +53,7 @@
"20"
],
"nozzle_temperature_initial_layer": [
- "260"
+ "270"
],
"reduce_fan_stop_start_freq": [
"0"
@@ -71,7 +71,7 @@
"60"
],
"nozzle_temperature": [
- "260"
+ "270"
],
"temperature_vitrification": [
"140"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pet.json b/resources/profiles/InfiMech/filament/fdm_filament_pet.json
index 14d4c5c806..2291e8d033 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pet.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pet.json
@@ -53,7 +53,7 @@
"30"
],
"nozzle_temperature_initial_layer": [
- "220"
+ "245"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"90"
],
"nozzle_temperature": [
- "220"
+ "245"
],
"temperature_vitrification": [
"80"
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pet_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pet_other.json
index 2ddd804742..8db27c3ab9 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pet_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pet_other.json
@@ -53,7 +53,7 @@
"30"
],
"nozzle_temperature_initial_layer": [
- "230"
+ "255"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -68,7 +68,7 @@
"90"
],
"nozzle_temperature": [
- "230"
+ "255"
],
"temperature_vitrification": [
"80"
@@ -80,7 +80,7 @@
"280"
],
"additional_cooling_fan_speed": [
- "100"
+ "0"
],
"filament_start_gcode": [
"; filament start gcode\n"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla.json b/resources/profiles/InfiMech/filament/fdm_filament_pla.json
index d93d3b72e6..12365ea4c8 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
index 97c8a80fde..19a1576c2a 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "200"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "195"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
index c29c200aae..03972e774f 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_Hyper_other.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json b/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
index 075d9df687..06d248c673 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_pla_other.json
@@ -41,13 +41,13 @@
"60"
],
"hot_plate_temp_initial_layer" : [
- "65"
+ "60"
],
"textured_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
- "205"
+ "220"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -71,7 +71,7 @@
"1"
],
"nozzle_temperature": [
- "205"
+ "220"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_tpu.json b/resources/profiles/InfiMech/filament/fdm_filament_tpu.json
index d69aa60fd6..d364dac6bc 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_tpu.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_tpu.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "210"
+ "230"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "210"
+ "230"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/filament/fdm_filament_tpu_other.json b/resources/profiles/InfiMech/filament/fdm_filament_tpu_other.json
index bdce70471d..e99e3d2ecc 100644
--- a/resources/profiles/InfiMech/filament/fdm_filament_tpu_other.json
+++ b/resources/profiles/InfiMech/filament/fdm_filament_tpu_other.json
@@ -48,7 +48,7 @@
],
"nozzle_temperature_initial_layer": [
- "220"
+ "240"
],
"reduce_fan_stop_start_freq": [
"1"
@@ -72,7 +72,7 @@
"1"
],
"nozzle_temperature": [
- "220"
+ "240"
],
"temperature_vitrification": [
"60"
diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
index 2d1e2aaa55..3cd0c7ec03 100644
--- a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
+++ b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json
@@ -204,7 +204,7 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
index 31eedc682c..eb272f991e 100644
--- a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
+++ b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/InfiMech/machine/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/fdm_klipper_common.json
index 23d50fef1e..9d09be715d 100644
--- a/resources/profiles/InfiMech/machine/fdm_klipper_common.json
+++ b/resources/profiles/InfiMech/machine/fdm_klipper_common.json
@@ -204,7 +204,7 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
diff --git a/resources/profiles/InfiMech/machine/fdm_machine_common.json b/resources/profiles/InfiMech/machine/fdm_machine_common.json
index 00dca16a19..ca2e420340 100644
--- a/resources/profiles/InfiMech/machine/fdm_machine_common.json
+++ b/resources/profiles/InfiMech/machine/fdm_machine_common.json
@@ -201,6 +201,6 @@
"0.4"
],
"z_hop_types": [
- "Auto Lift"
+ "Normal Lift"
]
}
diff --git a/resources/profiles/InfiMech/process/0.08mm Extra Fine @InfiMech TX.json b/resources/profiles/InfiMech/process/0.08mm Extra Fine @InfiMech TX.json
index 1e134e5d86..4a7732e115 100644
--- a/resources/profiles/InfiMech/process/0.08mm Extra Fine @InfiMech TX.json
+++ b/resources/profiles/InfiMech/process/0.08mm Extra Fine @InfiMech TX.json
@@ -7,20 +7,23 @@
"instantiation": "true",
"inherits": "fdm_process_common",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "9",
"top_shell_thickness": "0.8",
"tree_support_wall_count": "1",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "120",
+ "outer_wall_speed": "60",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "150",
"layer_height": "0.08",
"print_settings_id": "0.08mm Extra Fine @InfiMech TX",
- "sparse_infill_speed": "450",
+ "sparse_infill_speed": "150",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/InfiMech/process/0.12mm Fine @InfiMech TX.json b/resources/profiles/InfiMech/process/0.12mm Fine @InfiMech TX.json
index 223f43c726..ac3f49547f 100644
--- a/resources/profiles/InfiMech/process/0.12mm Fine @InfiMech TX.json
+++ b/resources/profiles/InfiMech/process/0.12mm Fine @InfiMech TX.json
@@ -6,20 +6,23 @@
"instantiation": "true",
"inherits": "fdm_process_common",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "5",
"top_shell_thickness": "0.6",
"tree_support_wall_count": "0",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "180",
+ "outer_wall_speed": "80",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_speed": "180",
+ "top_surface_speed": "150",
"layer_height": "0.12",
"print_settings_id": "0.12mm Fine @InfiMech TX",
- "sparse_infill_speed": "400",
+ "sparse_infill_speed": "180",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/InfiMech/process/0.16mm Optimal @InfiMech TX.json b/resources/profiles/InfiMech/process/0.16mm Optimal @InfiMech TX.json
index f98f050175..16feea3ef1 100644
--- a/resources/profiles/InfiMech/process/0.16mm Optimal @InfiMech TX.json
+++ b/resources/profiles/InfiMech/process/0.16mm Optimal @InfiMech TX.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
@@ -15,8 +16,9 @@
"bridge_speed": "25",
"brim_object_gap": "0.1",
"exclude_object": "1",
- "gap_infill_speed": "300",
- "inner_wall_speed": "300",
+ "gap_infill_speed": "250",
+ "inner_wall_speed": "250",
+ "outer_wall_speed": "120",
"internal_bridge_speed": "50",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_speed": "300",
diff --git a/resources/profiles/InfiMech/process/HSN/0.08mm Extra Fine @InfiMech TX HSN.json b/resources/profiles/InfiMech/process/HSN/0.08mm Extra Fine @InfiMech TX HSN.json
index 0c21376a9a..2165adcf55 100644
--- a/resources/profiles/InfiMech/process/HSN/0.08mm Extra Fine @InfiMech TX HSN.json
+++ b/resources/profiles/InfiMech/process/HSN/0.08mm Extra Fine @InfiMech TX HSN.json
@@ -7,20 +7,23 @@
"instantiation": "true",
"inherits": "fdm_process_common_HSN",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "7",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "9",
"top_shell_thickness": "0.8",
"tree_support_wall_count": "1",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "120",
+ "outer_wall_speed": "60",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "150",
"layer_height": "0.08",
"print_settings_id": "0.08mm Extra Fine @InfiMech TX HSN",
- "sparse_infill_speed": "450",
+ "sparse_infill_speed": "150",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/InfiMech/process/HSN/0.12mm Fine @InfiMech TX HSN.json b/resources/profiles/InfiMech/process/HSN/0.12mm Fine @InfiMech TX HSN.json
index daeb460bb4..cc0f1c11af 100644
--- a/resources/profiles/InfiMech/process/HSN/0.12mm Fine @InfiMech TX HSN.json
+++ b/resources/profiles/InfiMech/process/HSN/0.12mm Fine @InfiMech TX HSN.json
@@ -6,20 +6,23 @@
"instantiation": "true",
"inherits": "fdm_process_common_HSN",
+ "inner_wall_acceleration": "3000",
"bottom_shell_layers": "5",
- "overhang_1_4_speed": "50",
+ "overhang_1_4_speed": "30",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"top_shell_layers": "5",
"top_shell_thickness": "0.6",
"tree_support_wall_count": "0",
"brim_width": "5",
- "gap_infill_speed": "350",
- "inner_wall_speed": "350",
- "internal_solid_infill_speed": "350",
+ "gap_infill_speed": "180",
+ "outer_wall_speed": "80",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_speed": "180",
+ "top_surface_speed": "150",
"layer_height": "0.12",
"print_settings_id": "0.12mm Fine @InfiMech TX HSN",
- "sparse_infill_speed": "400",
+ "sparse_infill_speed": "180",
"exclude_object": "1",
"internal_bridge_speed": "50",
"compatible_printers": [
diff --git a/resources/profiles/InfiMech/process/HSN/0.16mm Optimal @InfiMech TX HSN.json b/resources/profiles/InfiMech/process/HSN/0.16mm Optimal @InfiMech TX HSN.json
index 21095d8ef5..5797438fc3 100644
--- a/resources/profiles/InfiMech/process/HSN/0.16mm Optimal @InfiMech TX HSN.json
+++ b/resources/profiles/InfiMech/process/HSN/0.16mm Optimal @InfiMech TX HSN.json
@@ -5,7 +5,8 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_process_common_HSN",
-
+
+ "inner_wall_acceleration": "3000",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"top_shell_layers": "6",
@@ -15,8 +16,9 @@
"bridge_speed": "25",
"brim_object_gap": "0.1",
"exclude_object": "1",
- "gap_infill_speed": "300",
- "inner_wall_speed": "300",
+ "gap_infill_speed": "250",
+ "inner_wall_speed": "250",
+ "outer_wall_speed": "120",
"internal_bridge_speed": "50",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_speed": "300",
diff --git a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
index 177a5918d4..e0ebf59dce 100644
--- a/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
+++ b/resources/profiles/InfiMech/process/HSN/fdm_process_common_HSN.json
@@ -23,7 +23,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -122,6 +122,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -129,7 +130,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/InfiMech/process/fdm_process_common.json b/resources/profiles/InfiMech/process/fdm_process_common.json
index f82c00298c..40e0dcede3 100644
--- a/resources/profiles/InfiMech/process/fdm_process_common.json
+++ b/resources/profiles/InfiMech/process/fdm_process_common.json
@@ -23,7 +23,7 @@
"default_jerk": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
- "detect_thin_wall": "0",
+ "detect_thin_wall": "1",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.15",
"enable_arc_fitting": "0",
@@ -122,6 +122,7 @@
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
@@ -129,7 +130,7 @@
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
- "sparse_infill_pattern": "crosshatch",
+ "sparse_infill_pattern": "grid",
"spiral_mode": "0",
"staggered_inner_seams": "0",
diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json
index dd6e47980a..3daf24d7d5 100644
--- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json
+++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json
@@ -7,7 +7,7 @@
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"filament_max_volumetric_speed": [
- "1.35"
+ "1.8"
],
"filament_flow_ratio": [
"1.15"
@@ -28,8 +28,14 @@
"210"
],
"filament_retraction_length": [
- "0"
+ "2"
],
+ "filament_retraction_speed": [
+ "45"
+ ],
+ "filament_deretraction_speed": [
+ "20"
+ ],
"close_fan_the_first_x_layers": [
"3"
],
diff --git a/resources/profiles/Prusa/process/process_detail_MK3.5.json b/resources/profiles/Prusa/process/process_detail_MK3.5.json
index 134905069b..3e9e82439c 100644
--- a/resources/profiles/Prusa/process/process_detail_MK3.5.json
+++ b/resources/profiles/Prusa/process/process_detail_MK3.5.json
@@ -12,7 +12,7 @@
"support_speed": "60",
"small_perimeter_speed": "40",
"sparse_infill_speed": "100",
- "internal_solid_infill_speed": "140",
+ "internal_solid_infill_speed": "120",
"top_surface_speed": "60",
"gap_infill_speed": "40",
"default_acceleration": "1500",
diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json
index 163d9817ad..e983dbebe3 100644
--- a/resources/profiles/Ratrig.json
+++ b/resources/profiles/Ratrig.json
@@ -110,6 +110,18 @@
"name": "0.25mm Quality Speed @RatRig V-Core 4 0.5",
"sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 0.5.json"
},
+ {
+ "name": "0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8",
+ "sub_path": "process/0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8.json"
+ },
+ {
+ "name": "0.30mm Big @RatRig V-Core 4 HYBRID 0.8",
+ "sub_path": "process/0.30mm Big @RatRig V-Core 4 HYBRID 0.8.json"
+ },
+ {
+ "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.8",
+ "sub_path": "process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.8.json"
+ },
{
"name": "0.25mm Quality Speed @RatRig V-Core 4 0.6",
"sub_path": "process/0.25mm Quality Speed @RatRig V-Core 4 0.6.json"
@@ -204,6 +216,10 @@
"name": "RatRig Generic PLA-CF",
"sub_path": "filament/RatRig Generic PLA-CF.json"
},
+ {
+ "name": "RatRig Generic PCTG",
+ "sub_path": "filament/RatRig Generic PCTG.json"
+ },
{
"name": "RatRig Generic PETG",
"sub_path": "filament/RatRig Generic PETG.json"
@@ -247,6 +263,26 @@
{
"name": "RatRig PunkFil PETG",
"sub_path": "filament/RatRig PunkFil PETG.json"
+ },
+ {
+ "name": "RatRig BigNozzle ABS",
+ "sub_path": "filament/RatRig BigNozzle ABS.json"
+ },
+ {
+ "name": "RatRig BigNozzle ASA",
+ "sub_path": "filament/RatRig BigNozzle ASA.json"
+ },
+ {
+ "name": "RatRig BigNozzle PLA",
+ "sub_path": "filament/RatRig BigNozzle PLA.json"
+ },
+ {
+ "name": "RatRig BigNozzle PETG",
+ "sub_path": "filament/RatRig BigNozzle PETG.json"
+ },
+ {
+ "name": "RatRig BigNozzle PCTG",
+ "sub_path": "filament/RatRig BigNozzle PCTG.json"
}
],
"machine_list": [
diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json
new file mode 100644
index 0000000000..eb6226db69
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json
@@ -0,0 +1,54 @@
+{
+ "type": "filament",
+ "filament_id": "GFB99",
+ "setting_id": "GFSA04",
+ "name": "RatRig BigNozzle ABS",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_abs",
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "filament_max_volumetric_speed": [
+ "18"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.03"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "108"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "nozzle_temperature": [
+ "265"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "nozzle_temperature_range_high": [
+ "290"
+ ],
+ "close_fan_the_first_x_layers": [
+ "2"
+ ],
+ "fan_cooling_layer_time": [
+ "10"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_speed": [
+ "30"
+ ]
+}
diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json
new file mode 100644
index 0000000000..31827e04c2
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json
@@ -0,0 +1,54 @@
+{
+ "type": "filament",
+ "filament_id": "GFB98",
+ "setting_id": "GFSA04",
+ "name": "RatRig BigNozzle ASA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_asa",
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "filament_max_volumetric_speed": [
+ "19"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.033"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "108"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "nozzle_temperature": [
+ "265"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "nozzle_temperature_range_high": [
+ "290"
+ ],
+ "close_fan_the_first_x_layers": [
+ "2"
+ ],
+ "fan_cooling_layer_time": [
+ "10"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_speed": [
+ "28"
+ ]
+}
diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json
new file mode 100644
index 0000000000..480aa22396
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json
@@ -0,0 +1,69 @@
+{
+ "type": "filament",
+ "filament_id": "GFC99",
+ "setting_id": "GFSA04",
+ "name": "RatRig BigNozzle PCTG",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pet",
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "overhang_fan_speed": [
+ "90"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "15"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_density": [
+ "1.29"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.045"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "280"
+ ],
+ "nozzle_temperature": [
+ "275"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "temperature_vitrification": [
+ "90"
+ ]
+}
diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json
new file mode 100644
index 0000000000..da00880373
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json
@@ -0,0 +1,63 @@
+{
+ "type": "filament",
+ "filament_id": "GFG99",
+ "setting_id": "GFSA04",
+ "name": "RatRig BigNozzle PETG",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pet",
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_cooling_layer_time": [
+ "10"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "fan_max_speed": [
+ "90"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.045"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "260"
+ ],
+ "nozzle_temperature": [
+ "255"
+ ],
+ "nozzle_temperature_range_high": [
+ "280"
+ ],
+ "nozzle_temperature_range_low": [
+ "230"
+ ]
+}
diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json
new file mode 100644
index 0000000000..f3121fe45d
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json
@@ -0,0 +1,39 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "RatRig BigNozzle PLA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pla",
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.05"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "nozzle_temperature_range_high": [
+ "260"
+ ],
+ "nozzle_temperature_range_low": [
+ "210"
+ ]
+}
diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json
new file mode 100644
index 0000000000..9f28df73ab
--- /dev/null
+++ b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json
@@ -0,0 +1,66 @@
+{
+ "type": "filament",
+ "filament_id": "GFC99",
+ "setting_id": "GFCA04",
+ "name": "RatRig Generic PCTG",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pet",
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "overhang_fan_speed": [
+ "90"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "fan_max_speed": [
+ "40"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "filament_flow_ratio": [
+ "0.94"
+ ],
+ "filament_density": [
+ "1.29"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_z_hop": [
+ "0"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.045"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "255"
+ ],
+ "nozzle_temperature": [
+ "255"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "temperature_vitrification": [
+ "90"
+ ]
+}
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json
new file mode 100644
index 0000000000..9cde1d7798
--- /dev/null
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json
@@ -0,0 +1,59 @@
+{
+ "type": "machine",
+ "setting_id": "GM002",
+ "name": "RatRig V-Core 4 HYBRID 300 0.8 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "RatRig V-Core 4 HYBRID 300",
+ "printer_variant": "0.8",
+ "nozzle_diameter": [
+ "0.8"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "machine_max_speed_x": ["500", "500"],
+ "machine_max_speed_y": ["500", "500"],
+ "machine_max_speed_z": ["200", "200"],
+ "machine_max_speed_e": ["120", "120"],
+ "machine_max_acceleration_x": ["20000", "20000"],
+ "machine_max_acceleration_y": ["20000", "20000"],
+ "machine_max_acceleration_z": ["200", "200"],
+ "machine_max_acceleration_e": ["5000", "5000"],
+ "machine_max_acceleration_extruding": ["20000", "20000"],
+ "machine_max_acceleration_retracting": ["20000", "20000"],
+ "machine_max_acceleration_travel": ["20000", "20000"],
+ "machine_max_jerk_x": ["5", "5"],
+ "machine_max_jerk_y": ["5", "5"],
+ "machine_max_jerk_z": ["0.4", "0.4"],
+ "machine_max_jerk_e": ["5", "5"],
+ "min_layer_height": ["0.12"],
+ "max_layer_height": ["0.5"],
+ "extruder_clearance_radius": "45",
+ "extruder_clearance_height_to_rod": "25",
+ "extruder_clearance_height_to_lid": "140",
+ "retract_lift_below": ["0.3"],
+ "retraction_length": ["0.8"],
+ "retraction_speed": ["120"],
+ "deretraction_speed": ["120"],
+ "wipe": ["1"],
+ "retract_before_wipe": ["70%"],
+ "z_hop": ["0.2"],
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
+ "change_filament_gcode": "M600",
+ "machine_pause_gcode": "PAUSE",
+ "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0",
+ "printable_height": "300",
+ "time_lapse_gcode": "TIMELAPSE_TAKE_FRAME",
+ "thumbnails": [
+ "64x64/PNG",
+ "100x100/PNG",
+ "400x300/PNG"
+ ]
+}
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json
new file mode 100644
index 0000000000..db7bb5ab3b
--- /dev/null
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json
@@ -0,0 +1,59 @@
+{
+ "type": "machine",
+ "setting_id": "GM002",
+ "name": "RatRig V-Core 4 HYBRID 400 0.8 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "RatRig V-Core 4 HYBRID 400",
+ "printer_variant": "0.8",
+ "nozzle_diameter": [
+ "0.8"
+ ],
+ "printable_area": [
+ "0x0",
+ "400x0",
+ "400x400",
+ "0x400"
+ ],
+ "machine_max_speed_x": ["500", "500"],
+ "machine_max_speed_y": ["500", "500"],
+ "machine_max_speed_z": ["200", "200"],
+ "machine_max_speed_e": ["120", "120"],
+ "machine_max_acceleration_x": ["20000", "20000"],
+ "machine_max_acceleration_y": ["20000", "20000"],
+ "machine_max_acceleration_z": ["200", "200"],
+ "machine_max_acceleration_e": ["5000", "5000"],
+ "machine_max_acceleration_extruding": ["20000", "20000"],
+ "machine_max_acceleration_retracting": ["20000", "20000"],
+ "machine_max_acceleration_travel": ["20000", "20000"],
+ "machine_max_jerk_x": ["5", "5"],
+ "machine_max_jerk_y": ["5", "5"],
+ "machine_max_jerk_z": ["0.4", "0.4"],
+ "machine_max_jerk_e": ["5", "5"],
+ "min_layer_height": ["0.12"],
+ "max_layer_height": ["0.5"],
+ "extruder_clearance_radius": "45",
+ "extruder_clearance_height_to_rod": "25",
+ "extruder_clearance_height_to_lid": "140",
+ "retract_lift_below": ["0.3"],
+ "retraction_length": ["0.8"],
+ "retraction_speed": ["120"],
+ "deretraction_speed": ["120"],
+ "wipe": ["1"],
+ "retract_before_wipe": ["70%"],
+ "z_hop": ["0.2"],
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
+ "change_filament_gcode": "M600",
+ "machine_pause_gcode": "PAUSE",
+ "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0",
+ "printable_height": "400",
+ "time_lapse_gcode": "TIMELAPSE_TAKE_FRAME",
+ "thumbnails": [
+ "64x64/PNG",
+ "100x100/PNG",
+ "400x300/PNG"
+ ]
+}
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json
new file mode 100644
index 0000000000..5c15020a7c
--- /dev/null
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json
@@ -0,0 +1,59 @@
+{
+ "type": "machine",
+ "setting_id": "GM002",
+ "name": "RatRig V-Core 4 HYBRID 500 0.8 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "RatRig V-Core 4 HYBRID 500",
+ "printer_variant": "0.8",
+ "nozzle_diameter": [
+ "0.6"
+ ],
+ "printable_area": [
+ "0x0",
+ "500x0",
+ "500x500",
+ "0x500"
+ ],
+ "machine_max_speed_x": ["500", "500"],
+ "machine_max_speed_y": ["500", "500"],
+ "machine_max_speed_z": ["200", "200"],
+ "machine_max_speed_e": ["120", "120"],
+ "machine_max_acceleration_x": ["20000", "20000"],
+ "machine_max_acceleration_y": ["20000", "20000"],
+ "machine_max_acceleration_z": ["200", "200"],
+ "machine_max_acceleration_e": ["5000", "5000"],
+ "machine_max_acceleration_extruding": ["20000", "20000"],
+ "machine_max_acceleration_retracting": ["20000", "20000"],
+ "machine_max_acceleration_travel": ["20000", "20000"],
+ "machine_max_jerk_x": ["5", "5"],
+ "machine_max_jerk_y": ["5", "5"],
+ "machine_max_jerk_z": ["0.4", "0.4"],
+ "machine_max_jerk_e": ["5", "5"],
+ "min_layer_height": ["0.12"],
+ "max_layer_height": ["0.5"],
+ "extruder_clearance_radius": "45",
+ "extruder_clearance_height_to_rod": "25",
+ "extruder_clearance_height_to_lid": "140",
+ "retract_lift_below": ["0.3"],
+ "retraction_length": ["0.8"],
+ "retraction_speed": ["120"],
+ "deretraction_speed": ["120"],
+ "wipe": ["1"],
+ "retract_before_wipe": ["70%"],
+ "z_hop": ["0.2"],
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
+ "change_filament_gcode": "M600",
+ "machine_pause_gcode": "PAUSE",
+ "printing_by_object_gcode": ";BETWEEN_OBJECTS\nG92 E0",
+ "printable_height": "500",
+ "time_lapse_gcode": "TIMELAPSE_TAKE_FRAME",
+ "thumbnails": [
+ "64x64/PNG",
+ "100x100/PNG",
+ "400x300/PNG"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json
index 24a7497b61..adb0bcb43f 100644
--- a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json
+++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.4.json
@@ -57,6 +57,6 @@
"compatible_printers": [
"RatRig V-Core 4 HYBRID 300 0.4 nozzle",
"RatRig V-Core 4 HYBRID 400 0.4 nozzle",
- "RatRig V-Core 4 HYBIRD 500 0.4 nozzle"
+ "RatRig V-Core 4 HYBRID 500 0.4 nozzle"
]
}
diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json
index dbf3f1e9e4..23d2671219 100644
--- a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json
+++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5.json
@@ -1,62 +1,62 @@
-{
- "type": "process",
- "setting_id": "GP006",
- "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5",
- "from": "system",
- "instantiation": "true",
- "inherits": "fdm_process_ratrig_common",
- "layer_height": "0.25",
- "inital_layer_height": "0.3",
- "wall_count": "4",
- "top_shell_layers": "4",
- "bottom_shell_layers": "3",
- "top_shell_thickness": "0",
- "sparse_infill_density": "25%",
- "infill_anchor": "600%",
- "infill_anchor_max": "5",
- "infill_combination": "1",
- "skirt_loops": "2",
- "skirt_distance": "10",
- "support_threshold_angle": "65",
- "support_bottom_z_distance": "0.2",
- "support_on_build_plate_only": "1",
- "support_object_xy_distance": "60%",
- "inner_wall_speed": "300",
- "small_perimeter_speed": "250",
- "outer_wall_speed": "250",
- "sparse_infill_speed": "400",
- "internal_solid_infill_speed": "100%",
- "top_surface_speed": "100%",
- "support_speed": "50",
- "support_interface_speed": "100%",
- "bridge_speed": "50",
- "gap_infill_speed": "200",
- "travel_speed": "600",
- "initial_layer_speed": "80",
- "outer_wall_acceleration": "8000",
- "inner_wall_acceleration": "10000",
- "top_surface_acceleration": "0",
- "internal_solid_infill_acceleration": "0",
- "sparse_infill_acceleration": "15000",
- "bridge_acceleration": "5000",
- "initial_layer_acceleration": "2500",
- "travel_acceleration": "15000",
- "default_acceleration": "15000",
- "line_width": "0.55",
- "initial_layer_line_width": "0.7",
- "inner_wall_line_width": "0.55",
- "outer_wall_line_width": "0.52",
- "sparse_infill_line_width": "0.55",
- "internal_solid_infill_line_width": "0.55",
- "top_surface_line_width": "0.55",
- "support_line_width": "0.55",
- "infill_wall_overlap": "18%",
- "bridge_flow": "0.85",
- "resolution": "0.0125",
- "elefant_foot_compensation": "0.1",
- "compatible_printers": [
- "RatRig V-Core 4 HYBRID 300 0.5 nozzle",
- "RatRig V-Core 4 HYBRID 400 0.5 nozzle",
- "RatRig V-Core 4 HYBIRD 500 0.5 nozzle"
- ]
-}
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.5",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "4",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "3",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "25%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "skirt_loops": "2",
+ "skirt_distance": "10",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "300",
+ "small_perimeter_speed": "250",
+ "outer_wall_speed": "250",
+ "sparse_infill_speed": "400",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "50",
+ "gap_infill_speed": "200",
+ "travel_speed": "600",
+ "initial_layer_speed": "80",
+ "outer_wall_acceleration": "8000",
+ "inner_wall_acceleration": "10000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "15000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "15000",
+ "default_acceleration": "15000",
+ "line_width": "0.55",
+ "initial_layer_line_width": "0.7",
+ "inner_wall_line_width": "0.55",
+ "outer_wall_line_width": "0.52",
+ "sparse_infill_line_width": "0.55",
+ "internal_solid_infill_line_width": "0.55",
+ "top_surface_line_width": "0.55",
+ "support_line_width": "0.55",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.5 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.5 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.5 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json
index 975e82da8a..eaa07504fc 100644
--- a/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json
+++ b/resources/profiles/Ratrig/process/0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6.json
@@ -1,62 +1,62 @@
-{
- "type": "process",
- "setting_id": "GP006",
- "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6",
- "from": "system",
- "instantiation": "true",
- "inherits": "fdm_process_ratrig_common",
- "layer_height": "0.25",
- "inital_layer_height": "0.3",
- "wall_count": "4",
- "top_shell_layers": "4",
- "bottom_shell_layers": "3",
- "top_shell_thickness": "0",
- "sparse_infill_density": "25%",
- "infill_anchor": "600%",
- "infill_anchor_max": "5",
- "infill_combination": "1",
- "skirt_loops": "2",
- "skirt_distance": "10",
- "support_threshold_angle": "65",
- "support_bottom_z_distance": "0.2",
- "support_on_build_plate_only": "1",
- "support_object_xy_distance": "60%",
- "inner_wall_speed": "300",
- "small_perimeter_speed": "250",
- "outer_wall_speed": "250",
- "sparse_infill_speed": "400",
- "internal_solid_infill_speed": "100%",
- "top_surface_speed": "100%",
- "support_speed": "50",
- "support_interface_speed": "100%",
- "bridge_speed": "50",
- "gap_infill_speed": "200",
- "travel_speed": "600",
- "initial_layer_speed": "80",
- "outer_wall_acceleration": "8000",
- "inner_wall_acceleration": "10000",
- "top_surface_acceleration": "0",
- "internal_solid_infill_acceleration": "0",
- "sparse_infill_acceleration": "15000",
- "bridge_acceleration": "5000",
- "initial_layer_acceleration": "2500",
- "travel_acceleration": "15000",
- "default_acceleration": "15000",
- "line_width": "0.65",
- "initial_layer_line_width": "0.84",
- "inner_wall_line_width": "0.65",
- "outer_wall_line_width": "0.65",
- "sparse_infill_line_width": "0.65",
- "internal_solid_infill_line_width": "0.65",
- "top_surface_line_width": "0.65",
- "support_line_width": "0.65",
- "infill_wall_overlap": "18%",
- "bridge_flow": "0.85",
- "resolution": "0.0125",
- "elefant_foot_compensation": "0.1",
- "compatible_printers": [
- "RatRig V-Core 4 HYBRID 300 0.6 nozzle",
- "RatRig V-Core 4 HYBRID 400 0.6 nozzle",
- "RatRig V-Core 4 HYBIRD 500 0.6 nozzle"
- ]
-}
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Quality Speed @RatRig V-Core 4 HYBRID 0.6",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "4",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "3",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "25%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "skirt_loops": "2",
+ "skirt_distance": "10",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "300",
+ "small_perimeter_speed": "250",
+ "outer_wall_speed": "250",
+ "sparse_infill_speed": "400",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "50",
+ "gap_infill_speed": "200",
+ "travel_speed": "600",
+ "initial_layer_speed": "80",
+ "outer_wall_acceleration": "8000",
+ "inner_wall_acceleration": "10000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "15000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "15000",
+ "default_acceleration": "15000",
+ "line_width": "0.65",
+ "initial_layer_line_width": "0.84",
+ "inner_wall_line_width": "0.65",
+ "outer_wall_line_width": "0.65",
+ "sparse_infill_line_width": "0.65",
+ "internal_solid_infill_line_width": "0.65",
+ "top_surface_line_width": "0.65",
+ "support_line_width": "0.65",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.6 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.6 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json
index 1ff1df93c8..83393ee776 100644
--- a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json
+++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 0.6.json
@@ -1,60 +1,60 @@
-{
- "type": "process",
- "setting_id": "GP006",
- "name": "0.25mm Speed @RatRig V-Core 4 0.6",
- "from": "system",
- "instantiation": "true",
- "inherits": "fdm_process_ratrig_common",
- "layer_height": "0.25",
- "inital_layer_height": "0.3",
- "wall_count": "2",
- "top_shell_layers": "3",
- "bottom_shell_layers": "2",
- "top_shell_thickness": "0",
- "sparse_infill_density": "10%",
- "infill_anchor": "600%",
- "infill_anchor_max": "5",
- "infill_combination": "1",
- "support_threshold_angle": "65",
- "support_bottom_z_distance": "0.2",
- "support_on_build_plate_only": "1",
- "support_object_xy_distance": "60%",
- "inner_wall_speed": "400",
- "small_perimeter_speed": "350",
- "outer_wall_speed": "400",
- "sparse_infill_speed": "500",
- "internal_solid_infill_speed": "100%",
- "top_surface_speed": "100%",
- "support_speed": "50",
- "support_interface_speed": "100%",
- "bridge_speed": "150",
- "gap_infill_speed": "200",
- "travel_speed": "600",
- "initial_layer_speed": "200",
- "outer_wall_acceleration": "8000",
- "inner_wall_acceleration": "10000",
- "top_surface_acceleration": "0",
- "internal_solid_infill_acceleration": "0",
- "sparse_infill_acceleration": "10000",
- "bridge_acceleration": "5000",
- "initial_layer_acceleration": "2500",
- "travel_acceleration": "15000",
- "default_acceleration": "10000",
- "line_width": "0.45",
- "initial_layer_line_width": "0.5",
- "inner_wall_line_width": "0.45",
- "outer_wall_line_width": "0.45",
- "sparse_infill_line_width": "0.45",
- "internal_solid_infill_line_width": "0.45",
- "top_surface_line_width": "0.45",
- "support_line_width": "0.45",
- "infill_wall_overlap": "18%",
- "bridge_flow": "0.85",
- "resolution": "0.0125",
- "elefant_foot_compensation": "0.1",
- "compatible_printers": [
- "RatRig V-Core 4 300 0.6 nozzle",
- "RatRig V-Core 4 400 0.6 nozzle",
- "RatRig V-Core 4 500 0.6 nozzle"
- ]
-}
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Speed @RatRig V-Core 4 0.6",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "2",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "2",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "10%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "400",
+ "small_perimeter_speed": "350",
+ "outer_wall_speed": "400",
+ "sparse_infill_speed": "500",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "150",
+ "gap_infill_speed": "200",
+ "travel_speed": "600",
+ "initial_layer_speed": "200",
+ "outer_wall_acceleration": "8000",
+ "inner_wall_acceleration": "10000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "10000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "15000",
+ "default_acceleration": "10000",
+ "line_width": "0.65",
+ "initial_layer_line_width": "0.85",
+ "inner_wall_line_width": "0.65",
+ "outer_wall_line_width": "0.60",
+ "sparse_infill_line_width": "0.65",
+ "internal_solid_infill_line_width": "0.65",
+ "top_surface_line_width": "0.65",
+ "support_line_width": "0.65",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 300 0.6 nozzle",
+ "RatRig V-Core 4 400 0.6 nozzle",
+ "RatRig V-Core 4 500 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json
index d9351ba3b1..48e7577f3c 100644
--- a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json
+++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.5.json
@@ -1,60 +1,60 @@
-{
- "type": "process",
- "setting_id": "GP006",
- "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.5",
- "from": "system",
- "instantiation": "true",
- "inherits": "fdm_process_ratrig_common",
- "layer_height": "0.25",
- "inital_layer_height": "0.3",
- "wall_count": "2",
- "top_shell_layers": "3",
- "bottom_shell_layers": "2",
- "top_shell_thickness": "0",
- "sparse_infill_density": "10%",
- "infill_anchor": "600%",
- "infill_anchor_max": "5",
- "infill_combination": "1",
- "support_threshold_angle": "65",
- "support_bottom_z_distance": "0.2",
- "support_on_build_plate_only": "1",
- "support_object_xy_distance": "60%",
- "inner_wall_speed": "500",
- "small_perimeter_speed": "500",
- "outer_wall_speed": "500",
- "sparse_infill_speed": "500",
- "internal_solid_infill_speed": "100%",
- "top_surface_speed": "100%",
- "support_speed": "50",
- "support_interface_speed": "100%",
- "bridge_speed": "150",
- "gap_infill_speed": "200",
- "travel_speed": "800",
- "initial_layer_speed": "200",
- "outer_wall_acceleration": "15000",
- "inner_wall_acceleration": "20000",
- "top_surface_acceleration": "0",
- "internal_solid_infill_acceleration": "0",
- "sparse_infill_acceleration": "20000",
- "bridge_acceleration": "5000",
- "initial_layer_acceleration": "2500",
- "travel_acceleration": "10000",
- "default_acceleration": "20000",
- "line_width": "0.45",
- "initial_layer_line_width": "0.5",
- "inner_wall_line_width": "0.45",
- "outer_wall_line_width": "0.45",
- "sparse_infill_line_width": "0.45",
- "internal_solid_infill_line_width": "0.45",
- "top_surface_line_width": "0.45",
- "support_line_width": "0.45",
- "infill_wall_overlap": "18%",
- "bridge_flow": "0.85",
- "resolution": "0.0125",
- "elefant_foot_compensation": "0.1",
- "compatible_printers": [
- "RatRig V-Core 4 HYBRID 300 0.5 nozzle",
- "RatRig V-Core 4 HYBRID 400 0.5 nozzle",
- "RatRig V-Core 4 HYBRID 500 0.5 nozzle"
- ]
-}
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.5",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "2",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "2",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "10%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "500",
+ "small_perimeter_speed": "500",
+ "outer_wall_speed": "500",
+ "sparse_infill_speed": "500",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "150",
+ "gap_infill_speed": "200",
+ "travel_speed": "800",
+ "initial_layer_speed": "200",
+ "outer_wall_acceleration": "15000",
+ "inner_wall_acceleration": "20000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "20000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "10000",
+ "default_acceleration": "20000",
+ "line_width": "0.55",
+ "initial_layer_line_width": "0.7",
+ "inner_wall_line_width": "0.55",
+ "outer_wall_line_width": "0.52",
+ "sparse_infill_line_width": "0.55",
+ "internal_solid_infill_line_width": "0.55",
+ "top_surface_line_width": "0.55",
+ "support_line_width": "0.55",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.5 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.5 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.5 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json
index 00d6c2113f..cc781e3f9e 100644
--- a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json
+++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.6.json
@@ -1,60 +1,60 @@
-{
- "type": "process",
- "setting_id": "GP006",
- "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.6",
- "from": "system",
- "instantiation": "true",
- "inherits": "fdm_process_ratrig_common",
- "layer_height": "0.25",
- "inital_layer_height": "0.3",
- "wall_count": "2",
- "top_shell_layers": "3",
- "bottom_shell_layers": "2",
- "top_shell_thickness": "0",
- "sparse_infill_density": "10%",
- "infill_anchor": "600%",
- "infill_anchor_max": "5",
- "infill_combination": "1",
- "support_threshold_angle": "65",
- "support_bottom_z_distance": "0.2",
- "support_on_build_plate_only": "1",
- "support_object_xy_distance": "60%",
- "inner_wall_speed": "500",
- "small_perimeter_speed": "500",
- "outer_wall_speed": "500",
- "sparse_infill_speed": "500",
- "internal_solid_infill_speed": "100%",
- "top_surface_speed": "100%",
- "support_speed": "50",
- "support_interface_speed": "100%",
- "bridge_speed": "150",
- "gap_infill_speed": "200",
- "travel_speed": "800",
- "initial_layer_speed": "200",
- "outer_wall_acceleration": "15000",
- "inner_wall_acceleration": "20000",
- "top_surface_acceleration": "0",
- "internal_solid_infill_acceleration": "0",
- "sparse_infill_acceleration": "20000",
- "bridge_acceleration": "5000",
- "initial_layer_acceleration": "2500",
- "travel_acceleration": "10000",
- "default_acceleration": "20000",
- "line_width": "0.45",
- "initial_layer_line_width": "0.5",
- "inner_wall_line_width": "0.45",
- "outer_wall_line_width": "0.45",
- "sparse_infill_line_width": "0.45",
- "internal_solid_infill_line_width": "0.45",
- "top_surface_line_width": "0.45",
- "support_line_width": "0.45",
- "infill_wall_overlap": "18%",
- "bridge_flow": "0.85",
- "resolution": "0.0125",
- "elefant_foot_compensation": "0.1",
- "compatible_printers": [
- "RatRig V-Core 4 HYBRID 300 0.6 nozzle",
- "RatRig V-Core 4 HYBRID 400 0.6 nozzle",
- "RatRig V-Core 4 HYBRID 500 0.6 nozzle"
- ]
-}
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.6",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "2",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "2",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "10%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "500",
+ "small_perimeter_speed": "500",
+ "outer_wall_speed": "500",
+ "sparse_infill_speed": "500",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "150",
+ "gap_infill_speed": "200",
+ "travel_speed": "800",
+ "initial_layer_speed": "200",
+ "outer_wall_acceleration": "15000",
+ "inner_wall_acceleration": "20000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "20000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "10000",
+ "default_acceleration": "20000",
+ "line_width": "0.65",
+ "initial_layer_line_width": "0.9",
+ "inner_wall_line_width": "0.65",
+ "outer_wall_line_width": "0.60",
+ "sparse_infill_line_width": "0.65",
+ "internal_solid_infill_line_width": "0.65",
+ "top_surface_line_width": "0.65",
+ "support_line_width": "0.65",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.6 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.6 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.8.json b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.8.json
new file mode 100644
index 0000000000..ba1e8c0cb1
--- /dev/null
+++ b/resources/profiles/Ratrig/process/0.25mm Speed @RatRig V-Core 4 HYBRID 0.8.json
@@ -0,0 +1,60 @@
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.25mm Speed @RatRig V-Core 4 HYBRID 0.8",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.25",
+ "inital_layer_height": "0.3",
+ "wall_count": "2",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "2",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "10%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "500",
+ "small_perimeter_speed": "500",
+ "outer_wall_speed": "500",
+ "sparse_infill_speed": "500",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "150",
+ "gap_infill_speed": "200",
+ "travel_speed": "800",
+ "initial_layer_speed": "200",
+ "outer_wall_acceleration": "15000",
+ "inner_wall_acceleration": "20000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "20000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "10000",
+ "default_acceleration": "20000",
+ "line_width": "0.75",
+ "initial_layer_line_width": "1.1",
+ "inner_wall_line_width": "0.75",
+ "outer_wall_line_width": "0.70",
+ "sparse_infill_line_width": "0.75",
+ "internal_solid_infill_line_width": "0.75",
+ "top_surface_line_width": "0.75",
+ "support_line_width": "0.75",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.8.json b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.8.json
new file mode 100644
index 0000000000..02512c0811
--- /dev/null
+++ b/resources/profiles/Ratrig/process/0.30mm Big @RatRig V-Core 4 HYBRID 0.8.json
@@ -0,0 +1,67 @@
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.30mm Big @RatRig V-Core 4 HYBRID 0.8",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.3",
+ "inital_layer_height": "0.35",
+ "wall_count": "3",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "3",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "25%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "skirt_loops": "2",
+ "skirt_distance": "10",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "300",
+ "small_perimeter_speed": "250",
+ "outer_wall_speed": "250",
+ "sparse_infill_speed": "400",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "50",
+ "gap_infill_speed": "200",
+ "travel_speed": "600",
+ "initial_layer_speed": "80",
+ "enable_overhang_speed": "1",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "45",
+ "overhang_3_4_speed": "80",
+ "overhang_4_4_speed": "100",
+ "outer_wall_acceleration": "8000",
+ "inner_wall_acceleration": "10000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "15000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "15000",
+ "default_acceleration": "15000",
+ "line_width": "0.75",
+ "initial_layer_line_width": "1.1",
+ "inner_wall_line_width": "0.75",
+ "outer_wall_line_width": "0.70",
+ "sparse_infill_line_width": "0.75",
+ "internal_solid_infill_line_width": "0.75",
+ "top_surface_line_width": "0.75",
+ "support_line_width": "0.75",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Ratrig/process/0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8.json b/resources/profiles/Ratrig/process/0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8.json
new file mode 100644
index 0000000000..3f7ea6a00b
--- /dev/null
+++ b/resources/profiles/Ratrig/process/0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8.json
@@ -0,0 +1,67 @@
+{
+ "type": "process",
+ "setting_id": "GP006",
+ "name": "0.35mm Extra Big @RatRig V-Core 4 HYBRID 0.8",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_ratrig_common",
+ "layer_height": "0.35",
+ "inital_layer_height": "0.4",
+ "wall_count": "3",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "3",
+ "top_shell_thickness": "0",
+ "sparse_infill_density": "30%",
+ "infill_anchor": "600%",
+ "infill_anchor_max": "5",
+ "infill_combination": "1",
+ "skirt_loops": "2",
+ "skirt_distance": "10",
+ "support_threshold_angle": "65",
+ "support_bottom_z_distance": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_object_xy_distance": "60%",
+ "inner_wall_speed": "300",
+ "small_perimeter_speed": "250",
+ "outer_wall_speed": "250",
+ "sparse_infill_speed": "400",
+ "internal_solid_infill_speed": "100%",
+ "top_surface_speed": "100%",
+ "support_speed": "50",
+ "support_interface_speed": "100%",
+ "bridge_speed": "50",
+ "gap_infill_speed": "200",
+ "travel_speed": "600",
+ "initial_layer_speed": "80",
+ "enable_overhang_speed": "1",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "45",
+ "overhang_3_4_speed": "80",
+ "overhang_4_4_speed": "100",
+ "outer_wall_acceleration": "8000",
+ "inner_wall_acceleration": "10000",
+ "top_surface_acceleration": "0",
+ "internal_solid_infill_acceleration": "0",
+ "sparse_infill_acceleration": "15000",
+ "bridge_acceleration": "5000",
+ "initial_layer_acceleration": "2500",
+ "travel_acceleration": "15000",
+ "default_acceleration": "15000",
+ "line_width": "0.75",
+ "initial_layer_line_width": "1.1",
+ "inner_wall_line_width": "0.75",
+ "outer_wall_line_width": "0.70",
+ "sparse_infill_line_width": "0.75",
+ "internal_solid_infill_line_width": "0.75",
+ "top_surface_line_width": "0.75",
+ "support_line_width": "0.75",
+ "infill_wall_overlap": "18%",
+ "bridge_flow": "0.85",
+ "resolution": "0.0125",
+ "elefant_foot_compensation": "0.1",
+ "compatible_printers": [
+ "RatRig V-Core 4 HYBRID 300 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 400 0.8 nozzle",
+ "RatRig V-Core 4 HYBRID 500 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Sovol.json b/resources/profiles/Sovol.json
index 46a6e8bb07..c3bea8bf19 100644
--- a/resources/profiles/Sovol.json
+++ b/resources/profiles/Sovol.json
@@ -24,6 +24,14 @@
{
"name": "Sovol SV06 Plus",
"sub_path": "machine/Sovol SV06 Plus.json"
+ },
+ {
+ "name": "Sovol SV06 ACE",
+ "sub_path": "machine/Sovol SV06 ACE.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE",
+ "sub_path": "machine/Sovol SV06 Plus ACE.json"
},
{
"name": "Sovol SV07",
@@ -90,6 +98,14 @@
{
"name": "0.20mm Standard @Sovol SV06Plus",
"sub_path": "process/0.20mm Standard @Sovol SV06Plus.json"
+ },
+ {
+ "name": "0.20mm Standard @Sovol SV06 ACE - official",
+ "sub_path": "process/0.20mm Standard @Sovol SV06 ACE - official.json"
+ },
+ {
+ "name": "0.20mm Standard @Sovol SV06 Plus ACE - official",
+ "sub_path": "process/0.20mm Standard @Sovol SV06 Plus ACE - official.json"
},
{
"name": "0.20mm Standard @Sovol SV07",
@@ -157,6 +173,38 @@
"name": "Sovol Generic TPU",
"sub_path": "filament/Sovol Generic TPU.json"
},
+ {
+ "name": "Sovol SV06 ACE PLA",
+ "sub_path": "filament/Sovol SV06 ACE PLA.json"
+ },
+ {
+ "name": "Sovol SV06 ACE ABS",
+ "sub_path": "filament/Sovol SV06 ACE ABS.json"
+ },
+ {
+ "name": "Sovol SV06 ACE PETG",
+ "sub_path": "filament/Sovol SV06 ACE PETG.json"
+ },
+ {
+ "name": "Sovol SV06 ACE TPU",
+ "sub_path": "filament/Sovol SV06 ACE TPU.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE PLA",
+ "sub_path": "filament/Sovol SV06 Plus ACE PLA.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE ABS",
+ "sub_path": "filament/Sovol SV06 Plus ACE ABS.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE PETG",
+ "sub_path": "filament/Sovol SV06 Plus ACE PETG.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE TPU",
+ "sub_path": "filament/Sovol SV06 Plus ACE TPU.json"
+ },
{
"name": "Sovol SV07 PLA",
"sub_path": "filament/Sovol SV07 PLA.json"
@@ -206,6 +254,14 @@
{
"name": "Sovol SV06 Plus 0.4 nozzle",
"sub_path": "machine/Sovol SV06 Plus 0.4 nozzle.json"
+ },
+ {
+ "name": "Sovol SV06 ACE 0.4 nozzle",
+ "sub_path": "machine/Sovol SV06 ACE 0.4 nozzle.json"
+ },
+ {
+ "name": "Sovol SV06 Plus ACE 0.4 nozzle",
+ "sub_path": "machine/Sovol SV06 Plus ACE 0.4 nozzle.json"
},
{
"name": "Sovol SV07 0.4 nozzle",
diff --git a/resources/profiles/Sovol/Sovol SV06 ACE_cover.png b/resources/profiles/Sovol/Sovol SV06 ACE_cover.png
new file mode 100644
index 0000000000..b10fde7707
Binary files /dev/null and b/resources/profiles/Sovol/Sovol SV06 ACE_cover.png differ
diff --git a/resources/profiles/Sovol/Sovol SV06 Plus ACE_cover.png b/resources/profiles/Sovol/Sovol SV06 Plus ACE_cover.png
new file mode 100644
index 0000000000..2cbbe7cf30
Binary files /dev/null and b/resources/profiles/Sovol/Sovol SV06 Plus ACE_cover.png differ
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json
new file mode 100644
index 0000000000..93d30e325c
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 ACE ABS",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic ABS",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["15"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "280"
+ ],
+ "nozzle_temperature": [
+ "270"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "95"
+ ],
+ "hot_plate_temp": [
+ "95"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json
new file mode 100644
index 0000000000..27284f6f72
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 ACE PETG",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic PETG",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["15"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "260"
+ ],
+ "nozzle_temperature": [
+ "245"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85"
+ ],
+ "hot_plate_temp": [
+ "85"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json
new file mode 100644
index 0000000000..27ab175790
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 ACE PLA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic PLA",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["21"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "50"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "60"
+ ],
+ "hot_plate_temp": [
+ "60"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json
new file mode 100644
index 0000000000..3379e27463
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 ACE TPU",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic TPU",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["3.6"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250"
+ ],
+ "nozzle_temperature": [
+ "245"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "60"
+ ],
+ "hot_plate_temp": [
+ "60"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json
new file mode 100644
index 0000000000..33e25425f5
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 Plus ACE ABS",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic ABS",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["15"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 Plus ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "280"
+ ],
+ "nozzle_temperature": [
+ "270"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "95"
+ ],
+ "hot_plate_temp": [
+ "95"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json
new file mode 100644
index 0000000000..e69c6117e4
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 Plus ACE PETG",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic PETG",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["15"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 Plus ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "260"
+ ],
+ "nozzle_temperature": [
+ "245"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85"
+ ],
+ "hot_plate_temp": [
+ "85"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json
new file mode 100644
index 0000000000..642d2d12b7
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 Plus ACE PLA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic PLA",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["21"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 Plus ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "50"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "60"
+ ],
+ "hot_plate_temp": [
+ "60"
+ ]
+}
diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json
new file mode 100644
index 0000000000..77163f8a94
--- /dev/null
+++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSA04",
+ "name": "Sovol SV06 Plus ACE TPU",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "Sovol Generic TPU",
+ "filament_flow_ratio": ["0.98"],
+ "filament_max_volumetric_speed": ["3.6"],
+ "full_fan_speed_layer": [
+ "3"
+ ],
+ "compatible_printers": [
+ "Sovol SV06 Plus ACE 0.4 nozzle"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "fan_cooling_layer_time": [
+ "80"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250"
+ ],
+ "nozzle_temperature": [
+ "245"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "60"
+ ],
+ "hot_plate_temp": [
+ "60"
+ ]
+}
diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json
new file mode 100644
index 0000000000..88ded0ba49
--- /dev/null
+++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json
@@ -0,0 +1,130 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "Sovol SV06 ACE 0.4 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_machine_common",
+ "printer_model": "Sovol SV06 ACE",
+ "default_print_profile": "0.20mm Standard @Sovol SV06 ACE - official",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printable_area": [
+ "0x0",
+ "220x0",
+ "220x220",
+ "0x220"
+ ],
+ "printable_height": "250",
+ "thumbnails": [
+ "96x96",
+ "160x160"
+ ],
+ "thumbnails_format": "PNG",
+ "retraction_length": [
+ "0.8"
+ ],
+ "machine_max_acceleration_e": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_x": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_y": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_z": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_x": [
+ "600",
+ "600"
+ ],
+ "machine_max_speed_y": [
+ "600",
+ "600"
+ ],
+ "machine_max_speed_e": [
+ "50",
+ "50"
+ ],
+ "machine_max_speed_z": [
+ "10",
+ "10"
+ ],
+ "z_hop": [
+ "0.4",
+ "0.4"
+ ],
+ "z_hop_types":[
+ "Auto Lift"
+ ],
+ "max_layer_height": [
+ "0.32",
+ "0.32"
+ ],
+ "retract_lift_below": [
+ "248",
+ "248"
+ ],
+ "retraction_speed": [
+ "40",
+ "40"
+ ],
+ "deretraction_speed": [
+ "40",
+ "40"
+ ],
+ "wipe_distance": [
+ "2",
+ "2"
+ ],
+ "retract_minimum_trave": [
+ "1",
+ "1"
+ ],
+ "retract_before_wipe": [
+ "100",
+ "100"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "machine_max_jerk_e": [
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "9"
+ ],
+ "machine_max_jerk_z": [
+ "0.5"
+ ],
+ "gcode_flavor": "klipper",
+ "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0",
+ "machine_start_gcode": "START_PRINT\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nG90\nG1 X0 F6000\nG1 Y20\nG1 Z0.400 F600\nG1 Y-4 F6000\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.200 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-4.800 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n",
+ "machine_end_gcode": "END_PRINT\n",
+ "default_filament_profile": [
+ "Sovol SV06 ACE PLA"
+ ]
+}
diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json
new file mode 100644
index 0000000000..be25128279
--- /dev/null
+++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Sovol SV06 ACE",
+ "model_id": "Sovol-SV06-ACE",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "Sovol",
+ "bed_model": "sovol_sv06_ace_buildplate_model.stl",
+ "bed_texture": "sovol_buildplate_texture.png",
+ "hotend_model": "",
+ "default_materials": "Sovol SV06 ACE PLA"
+}
diff --git a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json
new file mode 100644
index 0000000000..2223662fc5
--- /dev/null
+++ b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json
@@ -0,0 +1,133 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "Sovol SV06 Plus ACE 0.4 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_machine_common",
+ "printer_model": "Sovol SV06 Plus ACE",
+ "default_print_profile": "0.20mm Standard @Sovol SV06 Plus ACE - official",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "printable_height": "350",
+ "thumbnails": [
+ "96x96",
+ "160x160"
+ ],
+ "thumbnails_format": "PNG",
+ "retraction_length": [
+ "0.8"
+ ],
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "machine_max_acceleration_e": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_x": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_y": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_z": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_e": [
+ "50",
+ "50"
+ ],
+ "machine_max_speed_z": [
+ "10",
+ "10"
+ ],
+ "z_hop": [
+ "0.4",
+ "0.4"
+ ],
+ "z_hop_types":[
+ "Auto Lift"
+ ],
+ "max_layer_height": [
+ "0.32",
+ "0.32"
+ ],
+ "retract_lift_below": [
+ "343",
+ "343"
+ ],
+ "retraction_speed": [
+ "40",
+ "40"
+ ],
+ "deretraction_speed": [
+ "40",
+ "40"
+ ],
+ "wipe_distance": [
+ "2",
+ "2"
+ ],
+ "retract_minimum_trave": [
+ "1",
+ "1"
+ ],
+ "retract_before_wipe": [
+ "100",
+ "100"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "machine_max_jerk_e": [
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "9"
+ ],
+ "machine_max_jerk_z": [
+ "0.5"
+ ],
+ "gcode_flavor": "klipper",
+ "before_layer_change_gcode": "TIMELAPSE_TAKE_FRAME\nG92 E0",
+ "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nSTART_PRINT\nG28\nG90\nG1 X0 F6000\nG1 Y-4\nG1 Z0.200 F600\nM400\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\nG91\nM83\nG1 E-0.200 Z5 F600\nG1 X{print_bed_max[1] / 3} F6000\nG1 Z-5 F600\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 Y1 E0.16 F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 X-{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 Y1 E0.24 F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.24} F3000\nG1 X{print_bed_max[1] / 6} E{print_bed_max[1] / 6 * 0.16} F3000\nG1 E-0.200 Z1 F600\nM400\n\n",
+ "machine_end_gcode": "END_PRINT\n",
+ "default_filament_profile": [
+ "Sovol SV06 Plus ACE PLA"
+ ]
+}
diff --git a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json
new file mode 100644
index 0000000000..4c736bc7d6
--- /dev/null
+++ b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Sovol SV06 Plus ACE",
+ "model_id": "Sovol-SV06-Plus-ACE",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "Sovol",
+ "bed_model": "sovol_sv06plus_ace_buildplate_model.stl",
+ "bed_texture": "sovol_buildplate_texture.png",
+ "hotend_model": "",
+ "default_materials": "Sovol SV06 Plus ACE PLA"
+}
diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json
new file mode 100644
index 0000000000..6bfdda69af
--- /dev/null
+++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 ACE - official.json
@@ -0,0 +1,125 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.20mm Standard @Sovol SV06 ACE - official",
+ "from": "system",
+ "inherits": "fdm_process_common",
+ "instantiation": "true",
+ "adaptive_layer_height": "1",
+ "reduce_crossing_wall": "0",
+ "layer_height": "0.20",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_layers": "3",
+ "bottom_shell_thickness": "0",
+ "bridge_flow": "1",
+ "bridge_speed": "50",
+ "internal_bridge_speed": "50",
+ "brim_type": "auto_brim",
+ "brim_width": "5",
+ "brim_object_gap": "0",
+ "compatible_printers_condition": "",
+ "print_sequence": "by layer",
+ "default_acceleration": "10000",
+ "outer_wall_acceleration": "6000",
+ "top_surface_acceleration": "6000",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0.1",
+ "enable_arc_fitting": "0",
+ "outer_wall_line_width": "0.4",
+ "wall_infill_order": "inner wall/outer wall/infill",
+ "wall_sequence": "inner-outer-inner wall",
+ "line_width": "0.4",
+ "infill_direction": "45",
+ "sparse_infill_density": "10%",
+ "sparse_infill_pattern": "grid",
+ "initial_layer_acceleration": "2000",
+ "travel_acceleration": "10000",
+ "inner_wall_acceleration": "8000",
+ "bridge_acceleration": "100%",
+ "initial_layer_line_width": "0.5",
+ "initial_layer_print_height": "0.25",
+ "infill_combination": "0",
+ "sparse_infill_line_width": "0.45",
+ "infill_wall_overlap": "30%",
+ "interface_shells": "0",
+ "ironing_flow": "15%",
+ "ironing_spacing": "0.25",
+ "ironing_speed": "15",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode",
+ "detect_overhang_wall": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "20",
+ "inner_wall_line_width": "0.42",
+ "wall_loops": "2",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "seam_gap": "5%",
+ "skirt_distance": "0",
+ "skirt_height": "1",
+ "skirt_loops": "1",
+ "skirt_speed": "30",
+ "minimum_sparse_infill_area": "10",
+ "internal_solid_infill_line_width": "0.4",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.012",
+ "support_type": "normal(auto)",
+ "support_style": "snug",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.2",
+ "support_filament": "0",
+ "support_line_width": "0.45",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "-1",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "100%",
+ "support_base_pattern": "rectilinear",
+ "support_base_pattern_spacing": "2.5",
+ "support_speed": "80",
+ "support_threshold_angle": "20",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "40",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_surface_line_width": "0.38",
+ "top_shell_layers": "3",
+ "top_shell_thickness": "0.8",
+ "initial_layer_speed": "30",
+ "initial_layer_infill_speed": "40",
+ "initial_layer_travel_speed": "60%",
+ "slow_down_layers": "3",
+ "outer_wall_speed": "200",
+ "inner_wall_speed": "270",
+ "internal_solid_infill_speed": "200",
+ "top_surface_speed": "200",
+ "gap_infill_speed": "200",
+ "sparse_infill_speed": "300",
+ "travel_speed": "600",
+ "enable_prime_tower": "0",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "wall_generator": "classic",
+ "top_solid_infill_flow_ratio": "0.8",
+ "only_one_wall_top": "1",
+ "minimum_sparse_infill_threshold": "0",
+ "gcode_label_objects": "1",
+ "exclude_object": "1",
+ "accel_to_decel_enable": "0",
+ "thick_bridges": "1",
+ "compatible_printers": [
+ "Sovol SV06 ACE 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json
new file mode 100644
index 0000000000..671915ee36
--- /dev/null
+++ b/resources/profiles/Sovol/process/0.20mm Standard @Sovol SV06 Plus ACE - official.json
@@ -0,0 +1,125 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.20mm Standard @Sovol SV06 Plus ACE - official",
+ "from": "system",
+ "inherits": "fdm_process_common",
+ "instantiation": "true",
+ "adaptive_layer_height": "1",
+ "reduce_crossing_wall": "0",
+ "layer_height": "0.20",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_layers": "3",
+ "bottom_shell_thickness": "0",
+ "bridge_flow": "1",
+ "bridge_speed": "50",
+ "internal_bridge_speed": "50",
+ "brim_type": "auto_brim",
+ "brim_width": "5",
+ "brim_object_gap": "0",
+ "compatible_printers_condition": "",
+ "print_sequence": "by layer",
+ "default_acceleration": "8000",
+ "outer_wall_acceleration": "5000",
+ "top_surface_acceleration": "6000",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0.1",
+ "enable_arc_fitting": "0",
+ "outer_wall_line_width": "0.4",
+ "wall_infill_order": "inner wall/outer wall/infill",
+ "wall_sequence": "inner-outer-inner wall",
+ "line_width": "0.4",
+ "infill_direction": "45",
+ "sparse_infill_density": "10%",
+ "sparse_infill_pattern": "grid",
+ "initial_layer_acceleration": "2000",
+ "travel_acceleration": "8000",
+ "inner_wall_acceleration": "6000",
+ "bridge_acceleration": "100%",
+ "initial_layer_line_width": "0.5",
+ "initial_layer_print_height": "0.25",
+ "infill_combination": "0",
+ "sparse_infill_line_width": "0.45",
+ "infill_wall_overlap": "30%",
+ "interface_shells": "0",
+ "ironing_flow": "15%",
+ "ironing_spacing": "0.25",
+ "ironing_speed": "15",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{printer_model}_{input_filename_base}_{filament_type[0]}_{layer_height}_{print_time}.gcode",
+ "detect_overhang_wall": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "60",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "20",
+ "inner_wall_line_width": "0.42",
+ "wall_loops": "2",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "seam_gap": "5%",
+ "skirt_distance": "0",
+ "skirt_height": "1",
+ "skirt_loops": "1",
+ "skirt_speed": "50",
+ "minimum_sparse_infill_area": "10",
+ "internal_solid_infill_line_width": "0.4",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.012",
+ "support_type": "normal(auto)",
+ "support_style": "snug",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.2",
+ "support_filament": "0",
+ "support_line_width": "0.45",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "-1",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "100%",
+ "support_base_pattern": "rectilinear",
+ "support_base_pattern_spacing": "2.5",
+ "support_speed": "80",
+ "support_threshold_angle": "20",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "40",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_surface_line_width": "0.38",
+ "top_shell_layers": "4",
+ "top_shell_thickness": "1.0",
+ "initial_layer_speed": "30",
+ "initial_layer_infill_speed": "40",
+ "initial_layer_travel_speed": "60%",
+ "slow_down_layers": "3",
+ "outer_wall_speed": "200",
+ "inner_wall_speed": "270",
+ "internal_solid_infill_speed": "200",
+ "top_surface_speed": "200",
+ "gap_infill_speed": "200",
+ "sparse_infill_speed": "300",
+ "travel_speed": "500",
+ "enable_prime_tower": "0",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "wall_generator": "classic",
+ "top_solid_infill_flow_ratio": "0.8",
+ "only_one_wall_top": "1",
+ "minimum_sparse_infill_threshold": "0",
+ "gcode_label_objects": "1",
+ "exclude_object": "1",
+ "accel_to_decel_enable": "0",
+ "thick_bridges": "1",
+ "compatible_printers": [
+ "Sovol SV06 Plus ACE 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Sovol/sovol_buildplate_texture.png b/resources/profiles/Sovol/sovol_buildplate_texture.png
new file mode 100644
index 0000000000..f4333808ed
Binary files /dev/null and b/resources/profiles/Sovol/sovol_buildplate_texture.png differ
diff --git a/resources/profiles/Sovol/sovol_sv06_ace_buildplate_model.stl b/resources/profiles/Sovol/sovol_sv06_ace_buildplate_model.stl
new file mode 100644
index 0000000000..70d11cdea6
Binary files /dev/null and b/resources/profiles/Sovol/sovol_sv06_ace_buildplate_model.stl differ
diff --git a/resources/profiles/Sovol/sovol_sv06plus_ace_buildplate_model.stl b/resources/profiles/Sovol/sovol_sv06plus_ace_buildplate_model.stl
new file mode 100644
index 0000000000..fe9a4e6667
Binary files /dev/null and b/resources/profiles/Sovol/sovol_sv06plus_ace_buildplate_model.stl differ
diff --git a/resources/profiles/Volumic.json b/resources/profiles/Volumic.json
new file mode 100644
index 0000000000..373d7341a2
--- /dev/null
+++ b/resources/profiles/Volumic.json
@@ -0,0 +1,234 @@
+{
+ "name": "Volumic",
+ "version": "02.01.01.00",
+ "force_update": "0",
+ "description": "VOLUMIC configurations",
+ "machine_model_list": [
+ {
+ "name": "EXO42",
+ "sub_path": "machine/EXO42.json"
+ },
+ {
+ "name": "EXO65",
+ "sub_path": "machine/EXO65.json"
+ },
+ {
+ "name": "SH65",
+ "sub_path": "machine/SH65.json"
+ },
+ {
+ "name": "VS30SC2",
+ "sub_path": "machine/VS30SC2.json"
+ },
+ {
+ "name": "VS30MK3",
+ "sub_path": "machine/VS30MK3.json"
+ },
+ {
+ "name": "VS30MK2",
+ "sub_path": "machine/VS30MK2.json"
+ },
+ {
+ "name": "VS20MK2",
+ "sub_path": "machine/VS20MK2.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_volumic_common",
+ "sub_path": "process/fdm_process_volumic_common.json"
+ },
+ {
+ "name": "Compatible speed - 0.10mm",
+ "sub_path": "process/Compatible speed - 0.10mm.json"
+ },
+ {
+ "name": "Compatible speed - 0.15mm",
+ "sub_path": "process/Compatible speed - 0.15mm.json"
+ },
+ {
+ "name": "Compatible speed - 0.20mm",
+ "sub_path": "process/Compatible speed - 0.20mm.json"
+ },
+ {
+ "name": "Compatible speed - 0.25mm",
+ "sub_path": "process/Compatible speed - 0.25mm.json"
+ },
+ {
+ "name": "Compatible speed - 0.30mm",
+ "sub_path": "process/Compatible speed - 0.30mm.json"
+ },
+ {
+ "name": "High speed - 0.10mm",
+ "sub_path": "process/High speed - 0.10mm.json"
+ },
+ {
+ "name": "High speed - 0.15mm",
+ "sub_path": "process/High speed - 0.15mm.json"
+ },
+ {
+ "name": "High speed - 0.20mm",
+ "sub_path": "process/High speed - 0.20mm.json"
+ },
+ {
+ "name": "High speed - 0.25mm",
+ "sub_path": "process/High speed - 0.25mm.json"
+ },
+ {
+ "name": "High speed - 0.30mm",
+ "sub_path": "process/High speed - 0.30mm.json"
+ },
+ {
+ "name": "Normal speed - 0.10mm",
+ "sub_path": "process/Normal speed - 0.10mm.json"
+ },
+ {
+ "name": "Normal speed - 0.15mm",
+ "sub_path": "process/Normal speed - 0.15mm.json"
+ },
+ {
+ "name": "Normal speed - 0.20mm",
+ "sub_path": "process/Normal speed - 0.20mm.json"
+ },
+ {
+ "name": "Normal speed - 0.25mm",
+ "sub_path": "process/Normal speed - 0.25mm.json"
+ },
+ {
+ "name": "Normal speed - 0.30mm",
+ "sub_path": "process/Normal speed - 0.30mm.json"
+ },
+ {
+ "name": "Very high speed - 0.10mm",
+ "sub_path": "process/Very high speed - 0.10mm.json"
+ },
+ {
+ "name": "Very high speed - 0.15mm",
+ "sub_path": "process/Very high speed - 0.15mm.json"
+ },
+ {
+ "name": "Very high speed - 0.20mm",
+ "sub_path": "process/Very high speed - 0.20mm.json"
+ },
+ {
+ "name": "Very high speed - 0.25mm",
+ "sub_path": "process/Very high speed - 0.25mm.json"
+ },
+ {
+ "name": "Very high speed - 0.30mm",
+ "sub_path": "process/Very high speed - 0.30mm.json"
+ }
+ ],
+ "filament_list": [
+ {
+ "name": "fdm_filament_common",
+ "sub_path": "filament/fdm_filament_common.json"
+ },
+ {
+ "name": "fdm_filament_abs",
+ "sub_path": "filament/fdm_filament_abs.json"
+ },
+ {
+ "name": "fdm_filament_asa",
+ "sub_path": "filament/fdm_filament_asa.json"
+ },
+ {
+ "name": "fdm_filament_pa",
+ "sub_path": "filament/fdm_filament_pa.json"
+ },
+ {
+ "name": "fdm_filament_pc",
+ "sub_path": "filament/fdm_filament_pc.json"
+ },
+ {
+ "name": "fdm_filament_pet",
+ "sub_path": "filament/fdm_filament_pet.json"
+ },
+ {
+ "name": "fdm_filament_pla",
+ "sub_path": "filament/fdm_filament_pla.json"
+ },
+ {
+ "name": "fdm_filament_pva",
+ "sub_path": "filament/fdm_filament_pva.json"
+ },
+ {
+ "name": "fdm_filament_tpu",
+ "sub_path": "filament/fdm_filament_tpu.json"
+ },
+ {
+ "name": "Volumic ABS Ultra",
+ "sub_path": "filament/Volumic ABS Ultra.json"
+ },
+ {
+ "name": "Volumic ASA Ultra",
+ "sub_path": "filament/Volumic ASA Ultra.json"
+ },
+ {
+ "name": "Volumic FLEX93 Ultra",
+ "sub_path": "filament/Volumic FLEX93 Ultra.json"
+ },
+ {
+ "name": "Volumic NYLON Ultra",
+ "sub_path": "filament/Volumic NYLON Ultra.json"
+ },
+ {
+ "name": "Volumic PC",
+ "sub_path": "filament/Volumic PC.json"
+ },
+ {
+ "name": "Volumic PETG Ultra carbone",
+ "sub_path": "filament/Volumic PETG Ultra carbone.json"
+ },
+ {
+ "name": "Volumic PETG Ultra",
+ "sub_path": "filament/Volumic PETG Ultra.json"
+ },
+ {
+ "name": "Volumic PLA Ultra",
+ "sub_path": "filament/Volumic PLA Ultra.json"
+ },
+ {
+ "name": "Volumic PVA",
+ "sub_path": "filament/Volumic PVA.json"
+ },
+ {
+ "name": "Volumic UNIVERSAL Ultra",
+ "sub_path": "filament/Volumic UNIVERSAL Ultra.json"
+ }
+ ],
+ "machine_list": [
+ {
+ "name": "fdm_volumic_common",
+ "sub_path": "machine/fdm_volumic_common.json"
+ },
+ {
+ "name": "EXO42 (0.4 nozzle)",
+ "sub_path": "machine/EXO42 (0.4 nozzle).json"
+ },
+ {
+ "name": "EXO65 (0.6 nozzle)",
+ "sub_path": "machine/EXO65 (0.6 nozzle).json"
+ },
+ {
+ "name": "SH65 (0.4 nozzle)",
+ "sub_path": "machine/SH65 (0.4 nozzle).json"
+ },
+ {
+ "name": "VS30SC2 (0.4 nozzle)",
+ "sub_path": "machine/VS30SC2 (0.4 nozzle).json"
+ },
+ {
+ "name": "VS30MK3 (0.4 nozzle)",
+ "sub_path": "machine/VS30MK3 (0.4 nozzle).json"
+ },
+ {
+ "name": "VS30MK2 (0.4 nozzle)",
+ "sub_path": "machine/VS30MK2 (0.4 nozzle).json"
+ },
+ {
+ "name": "VS20MK2 (0.4 nozzle)",
+ "sub_path": "machine/VS20MK2 (0.4 nozzle).json"
+ }
+ ]
+}
diff --git a/resources/profiles/Volumic/EXO42_bed.STL b/resources/profiles/Volumic/EXO42_bed.STL
new file mode 100644
index 0000000000..2dd3e9a6e4
Binary files /dev/null and b/resources/profiles/Volumic/EXO42_bed.STL differ
diff --git a/resources/profiles/Volumic/EXO42_cover.png b/resources/profiles/Volumic/EXO42_cover.png
new file mode 100644
index 0000000000..ba85f6dadd
Binary files /dev/null and b/resources/profiles/Volumic/EXO42_cover.png differ
diff --git a/resources/profiles/Volumic/EXO65_bed.STL b/resources/profiles/Volumic/EXO65_bed.STL
new file mode 100644
index 0000000000..1b960173f1
Binary files /dev/null and b/resources/profiles/Volumic/EXO65_bed.STL differ
diff --git a/resources/profiles/Volumic/EXO65_cover.png b/resources/profiles/Volumic/EXO65_cover.png
new file mode 100644
index 0000000000..2f081bc3ff
Binary files /dev/null and b/resources/profiles/Volumic/EXO65_cover.png differ
diff --git a/resources/profiles/Volumic/SH65_bed.STL b/resources/profiles/Volumic/SH65_bed.STL
new file mode 100644
index 0000000000..ef2c2cf1ed
Binary files /dev/null and b/resources/profiles/Volumic/SH65_bed.STL differ
diff --git a/resources/profiles/Volumic/SH65_cover.png b/resources/profiles/Volumic/SH65_cover.png
new file mode 100644
index 0000000000..635200cace
Binary files /dev/null and b/resources/profiles/Volumic/SH65_cover.png differ
diff --git a/resources/profiles/Volumic/VS20MK2_cover.png b/resources/profiles/Volumic/VS20MK2_cover.png
new file mode 100644
index 0000000000..9da7bdfeb9
Binary files /dev/null and b/resources/profiles/Volumic/VS20MK2_cover.png differ
diff --git a/resources/profiles/Volumic/VS20_bed.STL b/resources/profiles/Volumic/VS20_bed.STL
new file mode 100644
index 0000000000..c9cdf046e1
Binary files /dev/null and b/resources/profiles/Volumic/VS20_bed.STL differ
diff --git a/resources/profiles/Volumic/VS30MK2_cover.png b/resources/profiles/Volumic/VS30MK2_cover.png
new file mode 100644
index 0000000000..d30c5a2404
Binary files /dev/null and b/resources/profiles/Volumic/VS30MK2_cover.png differ
diff --git a/resources/profiles/Volumic/VS30MK3_cover.png b/resources/profiles/Volumic/VS30MK3_cover.png
new file mode 100644
index 0000000000..47b86d1046
Binary files /dev/null and b/resources/profiles/Volumic/VS30MK3_cover.png differ
diff --git a/resources/profiles/Volumic/VS30PRO_bed.STL b/resources/profiles/Volumic/VS30PRO_bed.STL
new file mode 100644
index 0000000000..f525305e08
Binary files /dev/null and b/resources/profiles/Volumic/VS30PRO_bed.STL differ
diff --git a/resources/profiles/Volumic/VS30SC2_cover.png b/resources/profiles/Volumic/VS30SC2_cover.png
new file mode 100644
index 0000000000..1900d4fba4
Binary files /dev/null and b/resources/profiles/Volumic/VS30SC2_cover.png differ
diff --git a/resources/profiles/Volumic/VS30U_bed.STL b/resources/profiles/Volumic/VS30U_bed.STL
new file mode 100644
index 0000000000..57d41a0b81
Binary files /dev/null and b/resources/profiles/Volumic/VS30U_bed.STL differ
diff --git a/resources/profiles/Volumic/filament/Volumic ABS Ultra.json b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json
new file mode 100644
index 0000000000..02c4875ca0
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFB99",
+ "setting_id": "GFSA04",
+ "name": "Volumic ABS Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_abs",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "hot_plate_temp" : [
+ "75"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json
new file mode 100644
index 0000000000..cb9ad730a3
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFB99",
+ "setting_id": "GFSA04",
+ "name": "Volumic ASA Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_asa",
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "hot_plate_temp" : [
+ "85"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json
new file mode 100644
index 0000000000..7f9ea4a66f
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFU99",
+ "setting_id": "GFSR99",
+ "name": "Volumic FLEX93 Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_tpu",
+ "filament_flow_ratio": [
+ "1.20"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "hot_plate_temp" : [
+ "45"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "50"
+ ],
+ "filament_max_volumetric_speed": [
+ "4"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json
new file mode 100644
index 0000000000..d0096e8a35
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFN99",
+ "setting_id": "GFSN98",
+ "name": "Volumic NYLON Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pa",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "238"
+ ],
+ "hot_plate_temp" : [
+ "65"
+ ],
+ "fan_max_speed": [
+ "0"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "filament_max_volumetric_speed": [
+ "25"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic PC.json b/resources/profiles/Volumic/filament/Volumic PC.json
new file mode 100644
index 0000000000..bc79bd61fe
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic PC.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFC99",
+ "setting_id": "GFSC99",
+ "name": "Volumic PC",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pc",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "270"
+ ],
+ "hot_plate_temp" : [
+ "115"
+ ],
+ "fan_max_speed": [
+ "0"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "filament_max_volumetric_speed": [
+ "25"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json
new file mode 100644
index 0000000000..6f1ba0536d
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFG98",
+ "setting_id": "GFSG50",
+ "name": "Volumic PETG Ultra carbone",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pet",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "hot_plate_temp" : [
+ "65"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "60"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json
new file mode 100644
index 0000000000..06ea14f51c
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFG99",
+ "setting_id": "GFSG99",
+ "name": "Volumic PETG Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pet",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "hot_plate_temp" : [
+ "60"
+ ],
+ "fan_max_speed": [
+ "70"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic PLA Ultra.json b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json
new file mode 100644
index 0000000000..aff528301d
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSL99",
+ "name": "Volumic PLA Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pla",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "hot_plate_temp" : [
+ "50"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/Volumic PVA.json b/resources/profiles/Volumic/filament/Volumic PVA.json
new file mode 100644
index 0000000000..b371382fcd
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic PVA.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFS99",
+ "setting_id": "GFSS99",
+ "name": "Volumic PVA",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pva",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "hot_plate_temp" : [
+ "60"
+ ],
+ "fan_max_speed": [
+ "70"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "filament_max_volumetric_speed": [
+ "25"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json
new file mode 100644
index 0000000000..725fb5b866
--- /dev/null
+++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "filament_id": "GFL99",
+ "setting_id": "GFSL99",
+ "name": "Volumic UNIVERSAL Ultra",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_filament_pla",
+ "filament_flow_ratio": [
+ "1.00"
+ ],
+ "nozzle_temperature": [
+ "225"
+ ],
+ "hot_plate_temp" : [
+ "50"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_abs.json b/resources/profiles/Volumic/filament/fdm_filament_abs.json
new file mode 100644
index 0000000000..eb2c833b1e
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_abs.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_abs",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "90"
+ ],
+ "eng_plate_temp" : [
+ "90"
+ ],
+ "hot_plate_temp" : [
+ "90"
+ ],
+ "textured_plate_temp" : [
+ "90"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "filament_type": [
+ "ABS"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "overhang_fan_speed": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "3"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_asa.json b/resources/profiles/Volumic/filament/fdm_filament_asa.json
new file mode 100644
index 0000000000..6ec3d5be3b
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_asa.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_asa",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "0"
+ ],
+ "eng_plate_temp" : [
+ "90"
+ ],
+ "hot_plate_temp" : [
+ "90"
+ ],
+ "textured_plate_temp" : [
+ "90"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "90"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "35"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "filament_type": [
+ "ASA"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "70"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "overhang_fan_speed": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "3"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_common.json b/resources/profiles/Volumic/filament/fdm_filament_common.json
new file mode 100644
index 0000000000..2e62dadd83
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_common.json
@@ -0,0 +1,87 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_common",
+ "from": "system",
+ "instantiation": "false",
+ "cool_plate_temp" : [
+ "50"
+ ],
+ "eng_plate_temp" : [
+ "50"
+ ],
+ "hot_plate_temp" : [
+ "50"
+ ],
+ "textured_plate_temp" : [
+ "50"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "filament_density": [
+ "1"
+ ],
+ "filament_diameter": [
+ "1.75"
+ ],
+ "filament_minimal_purge_on_wipe_tower": [
+ "15"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_vendor": [
+ "Volumic"
+ ],
+ "bed_type": [
+ "Hot Plate"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "210"
+ ],
+ "full_fan_speed_layer": [
+ "0"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "60"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_pa.json b/resources/profiles/Volumic/filament/fdm_filament_pa.json
new file mode 100644
index 0000000000..264d99b82b
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_pa.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pa",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "65"
+ ],
+ "eng_plate_temp" : [
+ "65"
+ ],
+ "hot_plate_temp" : [
+ "65"
+ ],
+ "textured_plate_temp" : [
+ "65"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "65"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "65"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "65"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "65"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "4"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ],
+ "filament_type": [
+ "PA"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "238"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "fan_max_speed": [
+ "50"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "overhang_fan_speed": [
+ "50"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_pc.json b/resources/profiles/Volumic/filament/fdm_filament_pc.json
new file mode 100644
index 0000000000..7a80cc0679
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_pc.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pc",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "0"
+ ],
+ "eng_plate_temp" : [
+ "110"
+ ],
+ "hot_plate_temp" : [
+ "110"
+ ],
+ "textured_plate_temp" : [
+ "110"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "110"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "110"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "110"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "25"
+ ],
+ "filament_type": [
+ "PC"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "40"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_speed": [
+ "50"
+ ],
+ "nozzle_temperature": [
+ "270"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_pet.json b/resources/profiles/Volumic/filament/fdm_filament_pet.json
new file mode 100644
index 0000000000..1ab77c8ad5
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_pet.json
@@ -0,0 +1,70 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pet",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "60"
+ ],
+ "eng_plate_temp" : [
+ "60"
+ ],
+ "hot_plate_temp" : [
+ "60"
+ ],
+ "textured_plate_temp" : [
+ "60"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "fan_cooling_layer_time": [
+ "20"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "filament_type": [
+ "PETG"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_pla.json b/resources/profiles/Volumic/filament/fdm_filament_pla.json
new file mode 100644
index 0000000000..44309c3830
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_pla.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pla",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "42"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "cool_plate_temp" : [
+ "50"
+ ],
+ "eng_plate_temp" : [
+ "50"
+ ],
+ "hot_plate_temp" : [
+ "50"
+ ],
+ "textured_plate_temp" : [
+ "50"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "210"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_pva.json b/resources/profiles/Volumic/filament/fdm_filament_pva.json
new file mode 100644
index 0000000000..d362a6de1b
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_pva.json
@@ -0,0 +1,82 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pva",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "60"
+ ],
+ "eng_plate_temp" : [
+ "60"
+ ],
+ "hot_plate_temp" : [
+ "60"
+ ],
+ "textured_plate_temp" : [
+ "60"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "60"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "15"
+ ],
+ "filament_soluble": [
+ "1"
+ ],
+ "filament_is_support": [
+ "1"
+ ],
+ "filament_type": [
+ "PVA"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "70"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ]
+}
diff --git a/resources/profiles/Volumic/filament/fdm_filament_tpu.json b/resources/profiles/Volumic/filament/fdm_filament_tpu.json
new file mode 100644
index 0000000000..b0e6f8085a
--- /dev/null
+++ b/resources/profiles/Volumic/filament/fdm_filament_tpu.json
@@ -0,0 +1,70 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_tpu",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_filament_common",
+ "cool_plate_temp" : [
+ "45"
+ ],
+ "eng_plate_temp" : [
+ "45"
+ ],
+ "hot_plate_temp" : [
+ "45"
+ ],
+ "textured_plate_temp" : [
+ "45"
+ ],
+ "cool_plate_temp_initial_layer" : [
+ "30"
+ ],
+ "eng_plate_temp_initial_layer" : [
+ "30"
+ ],
+ "hot_plate_temp_initial_layer" : [
+ "30"
+ ],
+ "textured_plate_temp_initial_layer" : [
+ "30"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "5"
+ ],
+ "filament_type": [
+ "TPU"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "37.50"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "additional_cooling_fan_speed": [
+ "70"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "235"
+ ]
+}
diff --git a/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json b/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json
new file mode 100644
index 0000000000..d7d1c6d4bb
--- /dev/null
+++ b/resources/profiles/Volumic/machine/EXO42 (0.4 nozzle).json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "EXO42 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "EXO42",
+ "default_print_profile": "Normal speed - 0.15mm",
+ "host_type": "esp3d",
+ "print_host": "192.168.0.60",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","420x0","420x420","0x420"],
+ "printable_height": "420",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.3"],
+ "min_layer_height": ["0.025"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y419 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y419 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/EXO42.json b/resources/profiles/Volumic/machine/EXO42.json
new file mode 100644
index 0000000000..945524976d
--- /dev/null
+++ b/resources/profiles/Volumic/machine/EXO42.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "EXO42",
+ "model_id": "V420",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "EXO42_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json b/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json
new file mode 100644
index 0000000000..c783bd7d30
--- /dev/null
+++ b/resources/profiles/Volumic/machine/EXO65 (0.6 nozzle).json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "EXO65 (0.6 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "EXO65",
+ "default_print_profile": "Normal speed - 0.15mm",
+ "host_type": "esp3d",
+ "print_host": "192.168.0.60",
+ "nozzle_diameter": ["0.6"],
+ "printable_area": ["0x0","650x0","650x650","0x650"],
+ "printable_height": "650",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.5"],
+ "min_layer_height": ["0.05"],
+ "printer_variant": "0.6",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y649 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y649 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/EXO65.json b/resources/profiles/Volumic/machine/EXO65.json
new file mode 100644
index 0000000000..946b5793ae
--- /dev/null
+++ b/resources/profiles/Volumic/machine/EXO65.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "EXO65",
+ "model_id": "V650",
+ "nozzle_diameter": "0.6",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "EXO65_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json b/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json
new file mode 100644
index 0000000000..509e1e5d84
--- /dev/null
+++ b/resources/profiles/Volumic/machine/SH65 (0.4 nozzle).json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "SH65 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "SH65",
+ "default_print_profile": "Normal speed - 0.15mm",
+ "host_type": "esp3d",
+ "print_host": "192.168.0.60",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","650x0","650x300","0x300"],
+ "printable_height": "300",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.3"],
+ "min_layer_height": ["0.025"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/SH65.json b/resources/profiles/Volumic/machine/SH65.json
new file mode 100644
index 0000000000..8595be6afb
--- /dev/null
+++ b/resources/profiles/Volumic/machine/SH65.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "SH65",
+ "model_id": "V650300",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "SH65_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json
new file mode 100644
index 0000000000..882a25b051
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS20MK2 (0.4 nozzle).json
@@ -0,0 +1,42 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "VS20MK2 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "VS20MK2",
+ "default_print_profile": "Compatible speed - 0.15mm",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","200x0","200x200","0x200"],
+ "printable_height": "220",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.275"],
+ "min_layer_height": ["0.05"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2"],
+ "retraction_speed": ["25"],
+ "deretraction_speed": ["25"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/VS20MK2.json b/resources/profiles/Volumic/machine/VS20MK2.json
new file mode 100644
index 0000000000..312a794d0a
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS20MK2.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "VS20MK2",
+ "model_id": "V20",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "VS20_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json
new file mode 100644
index 0000000000..b93efe2ab2
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30MK2 (0.4 nozzle).json
@@ -0,0 +1,42 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "VS30MK2 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "VS30MK2",
+ "default_print_profile": "Compatible speed - 0.15mm",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","300x0","300x200","0x200"],
+ "printable_height": "300",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.275"],
+ "min_layer_height": ["0.05"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2"],
+ "retraction_speed": ["25"],
+ "deretraction_speed": ["25"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/VS30MK2.json b/resources/profiles/Volumic/machine/VS30MK2.json
new file mode 100644
index 0000000000..cb068264cf
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30MK2.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "VS30MK2",
+ "model_id": "V30",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "VS30PRO_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json
new file mode 100644
index 0000000000..ba6f34aecf
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30MK3 (0.4 nozzle).json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "VS30MK3 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "VS30MK3",
+ "default_print_profile": "Normal speed - 0.15mm",
+ "host_type": "esp3d",
+ "print_host": "192.168.0.60",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","300x0","300x200","0x200"],
+ "printable_height": "300",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.3"],
+ "min_layer_height": ["0.025"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/VS30MK3.json b/resources/profiles/Volumic/machine/VS30MK3.json
new file mode 100644
index 0000000000..dfb2c15122
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30MK3.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "VS30MK3",
+ "model_id": "V300A",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "VS30U_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json
new file mode 100644
index 0000000000..ae318a6f85
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30SC2 (0.4 nozzle).json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "setting_id": "GM001",
+ "name": "VS30SC2 (0.4 nozzle)",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_volumic_common",
+ "printer_model": "VS30SC2",
+ "default_print_profile": "Normal speed - 0.15mm",
+ "host_type": "esp3d",
+ "print_host": "192.168.0.60",
+ "nozzle_diameter": ["0.4"],
+ "printable_area": ["0x0","300x0","300x200","0x200"],
+ "printable_height": "310",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "gcode_flavor": "marlin",
+ "max_layer_height": ["0.3"],
+ "min_layer_height": ["0.025"],
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y199 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "before_layer_change_gcode": "G92 E0",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y199 F5000\nM84\nM300"
+}
\ No newline at end of file
diff --git a/resources/profiles/Volumic/machine/VS30SC2.json b/resources/profiles/Volumic/machine/VS30SC2.json
new file mode 100644
index 0000000000..faca3c35af
--- /dev/null
+++ b/resources/profiles/Volumic/machine/VS30SC2.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "VS30SC2",
+ "model_id": "V300",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "VOLUMIC",
+ "bed_model": "VS30U_bed.STL",
+ "default_materials": "Volumic UNIVERSAL Ultra"
+}
diff --git a/resources/profiles/Volumic/machine/fdm_volumic_common.json b/resources/profiles/Volumic/machine/fdm_volumic_common.json
new file mode 100644
index 0000000000..37f63f0ada
--- /dev/null
+++ b/resources/profiles/Volumic/machine/fdm_volumic_common.json
@@ -0,0 +1,44 @@
+{
+ "type": "machine",
+ "name": "fdm_volumic_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "marlin",
+ "emit_machine_limits_to_gcode": ["0"],
+ "machine_max_acceleration_e": ["0"],
+ "machine_max_acceleration_extruding": ["0"],
+ "machine_max_acceleration_retracting": ["0"],
+ "machine_max_acceleration_x": ["0"],
+ "machine_max_acceleration_y": ["0"],
+ "machine_max_acceleration_z": ["0"],
+ "machine_max_speed_e": ["0"],
+ "machine_max_speed_x": ["0"],
+ "machine_max_speed_y": ["0"],
+ "machine_max_speed_z": ["0"],
+ "machine_max_jerk_e": ["0"],
+ "machine_max_jerk_x": ["0"],
+ "machine_max_jerk_y": ["0"],
+ "machine_max_jerk_z": ["0"],
+ "printer_settings_id": "",
+ "printer_technology": "FFF",
+ "printer_variant": "0.4",
+ "retract_before_wipe": ["70%"],
+ "retract_when_changing_layer": ["1"],
+ "retract_length_toolchange": ["6"],
+ "z_hop": ["0"],
+ "retraction_minimum_travel": ["1"],
+ "retraction_length": ["2.4"],
+ "retraction_speed": ["30"],
+ "silent_mode": "0",
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "M600",
+ "machine_pause_gcode": "M601",
+ "wipe": ["1"],
+ "default_filament_profile": ["Volumic UNIVERSAL Ultra"],
+ "bed_exclude_area": ["0x0"],
+ "scan_first_layer": "0",
+ "nozzle_type": "undefine",
+ "machine_start_gcode": "M117 Demarrage\nM106 S0\nM140 S[first_layer_bed_temperature]\nM104 T0 S[first_layer_temperature]\nG28\nG90\nM82\nG92 E0\nG1 Z5 F600\nG1 X1 Y299 F6000\nM109 T0 S[first_layer_temperature]\nM300 P350\nG92 E0\nM117 Impression",
+ "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG0 X1 Y299 F5000\nM84\nM300",
+ "before_layer_change_gcode": "G92 E0"
+}
diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json
new file mode 100644
index 0000000000..a08e8deb85
--- /dev/null
+++ b/resources/profiles/Volumic/process/Compatible speed - 0.10mm.json
@@ -0,0 +1,32 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Compatible speed - 0.10mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.1",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "outer_wall_speed": "40",
+ "inner_wall_speed": "60",
+ "internal_solid_infill_speed": "60",
+ "top_surface_speed": "60",
+ "gap_infill_speed": "60",
+ "sparse_infill_speed": "60",
+ "travel_speed": "60",
+ "support_speed": "60",
+ "support_interface_speed": "60",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json
new file mode 100644
index 0000000000..ff404ab5a9
--- /dev/null
+++ b/resources/profiles/Volumic/process/Compatible speed - 0.15mm.json
@@ -0,0 +1,32 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Compatible speed - 0.15mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.15",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "outer_wall_speed": "40",
+ "inner_wall_speed": "60",
+ "internal_solid_infill_speed": "60",
+ "top_surface_speed": "60",
+ "gap_infill_speed": "60",
+ "sparse_infill_speed": "60",
+ "travel_speed": "60",
+ "support_speed": "60",
+ "support_interface_speed": "60",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json
new file mode 100644
index 0000000000..21d23bf573
--- /dev/null
+++ b/resources/profiles/Volumic/process/Compatible speed - 0.20mm.json
@@ -0,0 +1,32 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Compatible speed - 0.20mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "bottom_shell_layers": "5",
+ "top_shell_layers": "5",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "outer_wall_speed": "40",
+ "inner_wall_speed": "60",
+ "internal_solid_infill_speed": "60",
+ "top_surface_speed": "60",
+ "gap_infill_speed": "60",
+ "sparse_infill_speed": "60",
+ "travel_speed": "60",
+ "support_speed": "60",
+ "support_interface_speed": "60",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json
new file mode 100644
index 0000000000..6e6aaa4927
--- /dev/null
+++ b/resources/profiles/Volumic/process/Compatible speed - 0.25mm.json
@@ -0,0 +1,32 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Compatible speed - 0.25mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "outer_wall_speed": "40",
+ "inner_wall_speed": "60",
+ "internal_solid_infill_speed": "60",
+ "top_surface_speed": "60",
+ "gap_infill_speed": "60",
+ "sparse_infill_speed": "60",
+ "travel_speed": "60",
+ "support_speed": "60",
+ "support_interface_speed": "60",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json b/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json
new file mode 100644
index 0000000000..98ca418666
--- /dev/null
+++ b/resources/profiles/Volumic/process/Compatible speed - 0.30mm.json
@@ -0,0 +1,32 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Compatible speed - 0.30mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "outer_wall_speed": "40",
+ "inner_wall_speed": "60",
+ "internal_solid_infill_speed": "60",
+ "top_surface_speed": "60",
+ "gap_infill_speed": "60",
+ "sparse_infill_speed": "60",
+ "travel_speed": "60",
+ "support_speed": "60",
+ "support_interface_speed": "60",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)",
+ "VS30MK2 (0.4 nozzle)",
+ "VS20MK2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/High speed - 0.10mm.json b/resources/profiles/Volumic/process/High speed - 0.10mm.json
new file mode 100644
index 0000000000..0b45c946b0
--- /dev/null
+++ b/resources/profiles/Volumic/process/High speed - 0.10mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "High speed - 0.10mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.1",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "90",
+ "inner_wall_speed": "135",
+ "internal_solid_infill_speed": "135",
+ "top_surface_speed": "135",
+ "gap_infill_speed": "135",
+ "sparse_infill_speed": "135",
+ "travel_speed": "135",
+ "support_speed": "135",
+ "support_interface_speed": "135",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/High speed - 0.15mm.json b/resources/profiles/Volumic/process/High speed - 0.15mm.json
new file mode 100644
index 0000000000..5d2d1885dc
--- /dev/null
+++ b/resources/profiles/Volumic/process/High speed - 0.15mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "High speed - 0.15mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.15",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "90",
+ "inner_wall_speed": "135",
+ "internal_solid_infill_speed": "135",
+ "top_surface_speed": "135",
+ "gap_infill_speed": "135",
+ "sparse_infill_speed": "135",
+ "travel_speed": "135",
+ "support_speed": "135",
+ "support_interface_speed": "135",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/High speed - 0.20mm.json b/resources/profiles/Volumic/process/High speed - 0.20mm.json
new file mode 100644
index 0000000000..69f413874c
--- /dev/null
+++ b/resources/profiles/Volumic/process/High speed - 0.20mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "High speed - 0.20mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "bottom_shell_layers": "5",
+ "top_shell_layers": "5",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "90",
+ "inner_wall_speed": "135",
+ "internal_solid_infill_speed": "135",
+ "top_surface_speed": "135",
+ "gap_infill_speed": "135",
+ "sparse_infill_speed": "135",
+ "travel_speed": "135",
+ "support_speed": "135",
+ "support_interface_speed": "135",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/High speed - 0.25mm.json b/resources/profiles/Volumic/process/High speed - 0.25mm.json
new file mode 100644
index 0000000000..ac2edb9caa
--- /dev/null
+++ b/resources/profiles/Volumic/process/High speed - 0.25mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "High speed - 0.25mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "90",
+ "inner_wall_speed": "135",
+ "internal_solid_infill_speed": "135",
+ "top_surface_speed": "135",
+ "gap_infill_speed": "135",
+ "sparse_infill_speed": "135",
+ "travel_speed": "135",
+ "support_speed": "135",
+ "support_interface_speed": "135",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/High speed - 0.30mm.json b/resources/profiles/Volumic/process/High speed - 0.30mm.json
new file mode 100644
index 0000000000..be775f91fd
--- /dev/null
+++ b/resources/profiles/Volumic/process/High speed - 0.30mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "High speed - 0.30mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "90",
+ "inner_wall_speed": "135",
+ "internal_solid_infill_speed": "135",
+ "top_surface_speed": "135",
+ "gap_infill_speed": "135",
+ "sparse_infill_speed": "135",
+ "travel_speed": "135",
+ "support_speed": "135",
+ "support_interface_speed": "135",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Normal speed - 0.10mm.json b/resources/profiles/Volumic/process/Normal speed - 0.10mm.json
new file mode 100644
index 0000000000..bebbbfd4a9
--- /dev/null
+++ b/resources/profiles/Volumic/process/Normal speed - 0.10mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Normal speed - 0.10mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.1",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "70",
+ "inner_wall_speed": "100",
+ "internal_solid_infill_speed": "100",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "100",
+ "travel_speed": "135",
+ "support_speed": "100",
+ "support_interface_speed": "100",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Normal speed - 0.15mm.json b/resources/profiles/Volumic/process/Normal speed - 0.15mm.json
new file mode 100644
index 0000000000..63bdf5290f
--- /dev/null
+++ b/resources/profiles/Volumic/process/Normal speed - 0.15mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Normal speed - 0.15mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.15",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "70",
+ "inner_wall_speed": "100",
+ "internal_solid_infill_speed": "100",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "100",
+ "travel_speed": "135",
+ "support_speed": "100",
+ "support_interface_speed": "100",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Normal speed - 0.20mm.json b/resources/profiles/Volumic/process/Normal speed - 0.20mm.json
new file mode 100644
index 0000000000..8c181ffd48
--- /dev/null
+++ b/resources/profiles/Volumic/process/Normal speed - 0.20mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Normal speed - 0.20mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "bottom_shell_layers": "5",
+ "top_shell_layers": "5",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "70",
+ "inner_wall_speed": "100",
+ "internal_solid_infill_speed": "100",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "100",
+ "travel_speed": "135",
+ "support_speed": "100",
+ "support_interface_speed": "100",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Normal speed - 0.25mm.json b/resources/profiles/Volumic/process/Normal speed - 0.25mm.json
new file mode 100644
index 0000000000..410b708058
--- /dev/null
+++ b/resources/profiles/Volumic/process/Normal speed - 0.25mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Normal speed - 0.25mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "70",
+ "inner_wall_speed": "100",
+ "internal_solid_infill_speed": "100",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "100",
+ "travel_speed": "135",
+ "support_speed": "100",
+ "support_interface_speed": "100",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Normal speed - 0.30mm.json b/resources/profiles/Volumic/process/Normal speed - 0.30mm.json
new file mode 100644
index 0000000000..74ff4371db
--- /dev/null
+++ b/resources/profiles/Volumic/process/Normal speed - 0.30mm.json
@@ -0,0 +1,30 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Normal speed - 0.30mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "70",
+ "inner_wall_speed": "100",
+ "internal_solid_infill_speed": "100",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "100",
+ "travel_speed": "135",
+ "support_speed": "100",
+ "support_interface_speed": "100",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30MK3 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Very high speed - 0.10mm.json b/resources/profiles/Volumic/process/Very high speed - 0.10mm.json
new file mode 100644
index 0000000000..ea747e1115
--- /dev/null
+++ b/resources/profiles/Volumic/process/Very high speed - 0.10mm.json
@@ -0,0 +1,29 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Very high speed - 0.10mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.1",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "110",
+ "inner_wall_speed": "170",
+ "internal_solid_infill_speed": "170",
+ "top_surface_speed": "170",
+ "gap_infill_speed": "170",
+ "sparse_infill_speed": "170",
+ "travel_speed": "170",
+ "support_speed": "170",
+ "support_interface_speed": "170",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Very high speed - 0.15mm.json b/resources/profiles/Volumic/process/Very high speed - 0.15mm.json
new file mode 100644
index 0000000000..3ce8fad5f5
--- /dev/null
+++ b/resources/profiles/Volumic/process/Very high speed - 0.15mm.json
@@ -0,0 +1,29 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Very high speed - 0.15mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.15",
+ "bottom_shell_layers": "8",
+ "top_shell_layers": "8",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "110",
+ "inner_wall_speed": "170",
+ "internal_solid_infill_speed": "170",
+ "top_surface_speed": "170",
+ "gap_infill_speed": "170",
+ "sparse_infill_speed": "170",
+ "travel_speed": "170",
+ "support_speed": "170",
+ "support_interface_speed": "170",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Very high speed - 0.20mm.json b/resources/profiles/Volumic/process/Very high speed - 0.20mm.json
new file mode 100644
index 0000000000..0b78bdb993
--- /dev/null
+++ b/resources/profiles/Volumic/process/Very high speed - 0.20mm.json
@@ -0,0 +1,29 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Very high speed - 0.20mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "bottom_shell_layers": "5",
+ "top_shell_layers": "5",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "110",
+ "inner_wall_speed": "170",
+ "internal_solid_infill_speed": "170",
+ "top_surface_speed": "170",
+ "gap_infill_speed": "170",
+ "sparse_infill_speed": "170",
+ "travel_speed": "170",
+ "support_speed": "170",
+ "support_interface_speed": "170",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Very high speed - 0.25mm.json b/resources/profiles/Volumic/process/Very high speed - 0.25mm.json
new file mode 100644
index 0000000000..1d24acf22f
--- /dev/null
+++ b/resources/profiles/Volumic/process/Very high speed - 0.25mm.json
@@ -0,0 +1,29 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Very high speed - 0.25mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "110",
+ "inner_wall_speed": "170",
+ "internal_solid_infill_speed": "170",
+ "top_surface_speed": "170",
+ "gap_infill_speed": "170",
+ "sparse_infill_speed": "170",
+ "travel_speed": "170",
+ "support_speed": "170",
+ "support_interface_speed": "170",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/Very high speed - 0.30mm.json b/resources/profiles/Volumic/process/Very high speed - 0.30mm.json
new file mode 100644
index 0000000000..3660103987
--- /dev/null
+++ b/resources/profiles/Volumic/process/Very high speed - 0.30mm.json
@@ -0,0 +1,29 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "Very high speed - 0.30mm",
+ "from": "system",
+ "inherits": "fdm_process_volumic_common",
+ "instantiation": "true",
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "3",
+ "initial_layer_speed": "80",
+ "initial_layer_infill_speed": "80",
+ "outer_wall_speed": "110",
+ "inner_wall_speed": "170",
+ "internal_solid_infill_speed": "170",
+ "top_surface_speed": "170",
+ "gap_infill_speed": "170",
+ "sparse_infill_speed": "170",
+ "travel_speed": "170",
+ "support_speed": "170",
+ "support_interface_speed": "170",
+ "compatible_printers": [
+ "EXO42 (0.4 nozzle)",
+ "EXO65 (0.6 nozzle)",
+ "SH65 (0.4 nozzle)",
+ "VS30SC2 (0.4 nozzle)"
+ ]
+}
diff --git a/resources/profiles/Volumic/process/fdm_process_volumic_common.json b/resources/profiles/Volumic/process/fdm_process_volumic_common.json
new file mode 100644
index 0000000000..a371e0fbad
--- /dev/null
+++ b/resources/profiles/Volumic/process/fdm_process_volumic_common.json
@@ -0,0 +1,116 @@
+{
+ "type": "process",
+ "name": "fdm_process_volumic_common",
+ "from": "system",
+ "instantiation": "false",
+ "default_acceleration": ["0"],
+ "outer_wall_acceleration": ["0"],
+ "inner_wall_acceleration": ["0"],
+ "bridge_acceleration": ["0"],
+ "sparse_infill_acceleration": ["0"],
+ "internal_solid_infill_acceleration": ["0"],
+ "initial_layer_acceleration": ["0"],
+ "top_surface_acceleration": ["0"],
+ "travel_acceleration": ["0"],
+
+ "precise_outer_wall": "1",
+ "enable_overhang_speed": "1",
+ "adaptive_layer_height": "0",
+ "reduce_crossing_wall": "1",
+ "max_travel_detour_distance": "0",
+ "extra_perimeters_on_overhangs": "1",
+ "overhang_reverse": "1",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_layers": "5",
+ "bottom_shell_thickness": "0",
+ "bridge_flow": "1",
+ "bridge_speed": "60",
+ "internal_bridge_speed": "100%",
+ "thick_bridges": "1",
+ "brim_type": "no_brim",
+ "brim_width": "0",
+ "brim_object_gap": "2",
+ "print_sequence": "by layer",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "enable_arc_fitting": "0",
+ "outer_wall_line_width": "100%",
+ "line_width": "100%",
+ "initial_layer_line_width": "100%",
+ "sparse_infill_line_width": "100%",
+ "inner_wall_line_width": "100%",
+ "internal_solid_infill_line_width": "100%",
+ "support_line_width": "100%",
+ "top_surface_line_width": "100%",
+ "wall_infill_order": "inner wall/outer wall/infill",
+ "infill_direction": "45",
+ "sparse_infill_density": "25%",
+ "sparse_infill_pattern": "grid",
+ "infill_combination": "0",
+ "infill_anchor":"20%",
+ "infill_wall_overlap": "20%",
+ "interface_shells": "0",
+ "ironing_flow": "25%",
+ "ironing_spacing": "0.1",
+ "ironing_speed": "15",
+ "ironing_type": "no ironing",
+ "layer_height": "0.2",
+ "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",
+ "wall_loops": "3",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "2",
+ "skirt_height": "1",
+ "support_on_buildplate_only": "1",
+ "skirt_loops": "1",
+ "minimum_sparse_infill_area": "15",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.01",
+ "support_type": "normal(auto)",
+ "support_style": "default",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.1",
+ "support_bottom_z_distance": "0.1",
+ "support_filament": "0",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "4",
+ "support_interface_bottom_layers": "4",
+ "support_interface_spacing": "0.5",
+ "support_bottom_interface_spacing": "0.5",
+ "support_base_pattern": "lightning",
+ "support_base_pattern_spacing": "2.5",
+ "support_angle": "45",
+ "support_threshold_angle": "50",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "50",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_shell_layers": "5",
+ "top_shell_thickness": "0",
+ "initial_layer_speed": "15",
+ "initial_layer_infill_speed": "20",
+ "outer_wall_speed": "60",
+ "inner_wall_speed": "80",
+ "internal_solid_infill_speed": "40",
+ "top_surface_speed": "30",
+ "gap_infill_speed": "30",
+ "sparse_infill_speed": "50",
+ "travel_speed": "150",
+ "enable_prime_tower": "0",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0"
+}
diff --git a/resources/profiles/Voron.json b/resources/profiles/Voron.json
index 7bfa7c6615..a821cfc7c0 100644
--- a/resources/profiles/Voron.json
+++ b/resources/profiles/Voron.json
@@ -58,6 +58,10 @@
"name": "fdm_process_voron_common_0_2_5",
"sub_path": "process/fdm_process_voron_common_0_2_5.json"
},
+ {
+ "name": "fdm_process_voron_common_0_5",
+ "sub_path": "process/fdm_process_voron_common_0_5.json"
+ },
{
"name": "fdm_process_voron_common_0_6",
"sub_path": "process/fdm_process_voron_common_0_6.json"
@@ -205,6 +209,30 @@
{
"name": "0.80mm Extra Draft 1.0 nozzle @Voron",
"sub_path": "process/0.80mm Extra Draft 1.0 nozzle @Voron.json"
+ },
+ {
+ "name": "0.10mm Extra Fine 0.5 nozzle @Voron",
+ "sub_path": "process/0.10mm Extra Fine 0.5 nozzle @Voron.json"
+ },
+ {
+ "name": "0.15mm Fine 0.5 nozzle @Voron",
+ "sub_path": "process/0.15mm Fine 0.5 nozzle @Voron.json"
+ },
+ {
+ "name": "0.20mm Optimal 0.5 nozzle @Voron",
+ "sub_path": "process/0.20mm Optimal 0.5 nozzle @Voron.json"
+ },
+ {
+ "name": "0.25mm Standard 0.5 nozzle @Voron",
+ "sub_path": "process/0.25mm Standard 0.5 nozzle @Voron.json"
+ },
+ {
+ "name": "0.30mm Draft 0.5 nozzle @Voron",
+ "sub_path": "process/0.30mm Draft 0.5 nozzle @Voron.json"
+ },
+ {
+ "name": "0.35mm Extra Draft 0.5 nozzle @Voron",
+ "sub_path": "process/0.35mm Extra Draft 0.5 nozzle @Voron.json"
}
],
"filament_list": [
@@ -310,6 +338,10 @@
"name": "Voron 2.4 250 0.25 nozzle",
"sub_path": "machine/Voron 2.4 250 0.25 nozzle.json"
},
+ {
+ "name": "Voron 2.4 250 0.5 nozzle",
+ "sub_path": "machine/Voron 2.4 250 0.5 nozzle.json"
+ },
{
"name": "Voron 2.4 250 0.6 nozzle",
"sub_path": "machine/Voron 2.4 250 0.6 nozzle.json"
@@ -338,6 +370,10 @@
"name": "Voron 2.4 300 0.25 nozzle",
"sub_path": "machine/Voron 2.4 300 0.25 nozzle.json"
},
+ {
+ "name": "Voron 2.4 300 0.5 nozzle",
+ "sub_path": "machine/Voron 2.4 300 0.5 nozzle.json"
+ },
{
"name": "Voron 2.4 300 0.6 nozzle",
"sub_path": "machine/Voron 2.4 300 0.6 nozzle.json"
@@ -366,6 +402,10 @@
"name": "Voron 2.4 350 0.25 nozzle",
"sub_path": "machine/Voron 2.4 350 0.25 nozzle.json"
},
+ {
+ "name": "Voron 2.4 350 0.5 nozzle",
+ "sub_path": "machine/Voron 2.4 350 0.5 nozzle.json"
+ },
{
"name": "Voron 2.4 350 0.6 nozzle",
"sub_path": "machine/Voron 2.4 350 0.6 nozzle.json"
@@ -394,6 +434,10 @@
"name": "Voron Trident 250 0.25 nozzle",
"sub_path": "machine/Voron Trident 250 0.25 nozzle.json"
},
+ {
+ "name": "Voron Trident 250 0.5 nozzle",
+ "sub_path": "machine/Voron Trident 250 0.5 nozzle.json"
+ },
{
"name": "Voron Trident 250 0.6 nozzle",
"sub_path": "machine/Voron Trident 250 0.6 nozzle.json"
@@ -422,6 +466,10 @@
"name": "Voron Trident 300 0.25 nozzle",
"sub_path": "machine/Voron Trident 300 0.25 nozzle.json"
},
+ {
+ "name": "Voron Trident 300 0.5 nozzle",
+ "sub_path": "machine/Voron Trident 300 0.5 nozzle.json"
+ },
{
"name": "Voron Trident 300 0.6 nozzle",
"sub_path": "machine/Voron Trident 300 0.6 nozzle.json"
@@ -450,6 +498,10 @@
"name": "Voron Trident 350 0.25 nozzle",
"sub_path": "machine/Voron Trident 350 0.25 nozzle.json"
},
+ {
+ "name": "Voron Trident 350 0.5 nozzle",
+ "sub_path": "machine/Voron Trident 350 0.5 nozzle.json"
+ },
{
"name": "Voron Trident 350 0.6 nozzle",
"sub_path": "machine/Voron Trident 350 0.6 nozzle.json"
@@ -478,6 +530,10 @@
"name": "Voron 0.1 0.25 nozzle",
"sub_path": "machine/Voron 0.1 0.25 nozzle.json"
},
+ {
+ "name": "Voron 0.1 0.5 nozzle",
+ "sub_path": "machine/Voron 0.1 0.5 nozzle.json"
+ },
{
"name": "Voron 0.1 0.6 nozzle",
"sub_path": "machine/Voron 0.1 0.6 nozzle.json"
@@ -506,6 +562,10 @@
"name": "Voron Switchwire 250 0.25 nozzle",
"sub_path": "machine/Voron Switchwire 250 0.25 nozzle.json"
},
+ {
+ "name": "Voron Switchwire 250 0.5 nozzle",
+ "sub_path": "machine/Voron Switchwire 250 0.5 nozzle.json"
+ },
{
"name": "Voron Switchwire 250 0.6 nozzle",
"sub_path": "machine/Voron Switchwire 250 0.6 nozzle.json"
diff --git a/resources/profiles/Voron/filament/Voron Generic ABS.json b/resources/profiles/Voron/filament/Voron Generic ABS.json
index a321511ad0..a93df9012f 100644
--- a/resources/profiles/Voron/filament/Voron Generic ABS.json
+++ b/resources/profiles/Voron/filament/Voron Generic ABS.json
@@ -17,6 +17,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -24,6 +25,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -31,6 +33,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -38,6 +41,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -45,6 +49,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -52,6 +57,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -59,6 +65,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -66,6 +73,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic ASA.json b/resources/profiles/Voron/filament/Voron Generic ASA.json
index 2e32235db1..2c323cb525 100644
--- a/resources/profiles/Voron/filament/Voron Generic ASA.json
+++ b/resources/profiles/Voron/filament/Voron Generic ASA.json
@@ -17,6 +17,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -24,6 +25,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -31,6 +33,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -38,6 +41,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -45,6 +49,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -52,6 +57,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -59,6 +65,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -66,6 +73,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PA-CF.json b/resources/profiles/Voron/filament/Voron Generic PA-CF.json
index 868ca5dba6..30e5136fd0 100644
--- a/resources/profiles/Voron/filament/Voron Generic PA-CF.json
+++ b/resources/profiles/Voron/filament/Voron Generic PA-CF.json
@@ -23,6 +23,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -30,6 +31,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -37,6 +39,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -44,6 +47,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -51,6 +55,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -58,6 +63,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -65,6 +71,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -72,6 +79,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PA.json b/resources/profiles/Voron/filament/Voron Generic PA.json
index 391f871744..91790d2f80 100644
--- a/resources/profiles/Voron/filament/Voron Generic PA.json
+++ b/resources/profiles/Voron/filament/Voron Generic PA.json
@@ -20,6 +20,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -27,6 +28,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -34,6 +36,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -41,6 +44,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -48,6 +52,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -55,6 +60,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -62,6 +68,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -69,6 +76,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PC.json b/resources/profiles/Voron/filament/Voron Generic PC.json
index eec0beb6eb..96de811416 100644
--- a/resources/profiles/Voron/filament/Voron Generic PC.json
+++ b/resources/profiles/Voron/filament/Voron Generic PC.json
@@ -17,6 +17,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -24,6 +25,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -31,6 +33,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -38,6 +41,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -45,6 +49,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -52,6 +57,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -59,6 +65,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -66,6 +73,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PETG.json b/resources/profiles/Voron/filament/Voron Generic PETG.json
index ddd396ff4c..6238ed6a3c 100644
--- a/resources/profiles/Voron/filament/Voron Generic PETG.json
+++ b/resources/profiles/Voron/filament/Voron Generic PETG.json
@@ -47,6 +47,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -54,6 +55,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -61,6 +63,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -68,6 +71,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -75,6 +79,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -82,6 +87,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -89,6 +95,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -96,6 +103,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PLA-CF.json b/resources/profiles/Voron/filament/Voron Generic PLA-CF.json
index 9de164685b..904e232753 100644
--- a/resources/profiles/Voron/filament/Voron Generic PLA-CF.json
+++ b/resources/profiles/Voron/filament/Voron Generic PLA-CF.json
@@ -23,6 +23,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -30,6 +31,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -37,6 +39,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -44,6 +47,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -51,6 +55,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -58,6 +63,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -65,6 +71,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -72,6 +79,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PLA.json b/resources/profiles/Voron/filament/Voron Generic PLA.json
index 699970bf68..1147466761 100644
--- a/resources/profiles/Voron/filament/Voron Generic PLA.json
+++ b/resources/profiles/Voron/filament/Voron Generic PLA.json
@@ -20,6 +20,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -27,6 +28,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -34,6 +36,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -41,6 +44,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -48,6 +52,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -55,6 +60,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -62,6 +68,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -69,6 +76,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic PVA.json b/resources/profiles/Voron/filament/Voron Generic PVA.json
index 631be1e27a..75cb3f3b22 100644
--- a/resources/profiles/Voron/filament/Voron Generic PVA.json
+++ b/resources/profiles/Voron/filament/Voron Generic PVA.json
@@ -23,6 +23,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -30,6 +31,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -37,6 +39,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -44,6 +47,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -51,6 +55,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -58,6 +63,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -65,6 +71,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -72,6 +79,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/filament/Voron Generic TPU.json b/resources/profiles/Voron/filament/Voron Generic TPU.json
index 891156cf1d..00ea690e72 100644
--- a/resources/profiles/Voron/filament/Voron Generic TPU.json
+++ b/resources/profiles/Voron/filament/Voron Generic TPU.json
@@ -14,6 +14,7 @@
"Voron 2.4 250 0.15 nozzle",
"Voron 2.4 250 0.2 nozzle",
"Voron 2.4 250 0.25 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
"Voron 2.4 250 0.6 nozzle",
"Voron 2.4 250 0.8 nozzle",
"Voron 2.4 250 1.0 nozzle",
@@ -21,6 +22,7 @@
"Voron 2.4 300 0.15 nozzle",
"Voron 2.4 300 0.2 nozzle",
"Voron 2.4 300 0.25 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
"Voron 2.4 300 0.6 nozzle",
"Voron 2.4 300 0.8 nozzle",
"Voron 2.4 300 1.0 nozzle",
@@ -28,6 +30,7 @@
"Voron 2.4 350 0.15 nozzle",
"Voron 2.4 350 0.2 nozzle",
"Voron 2.4 350 0.25 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
"Voron 2.4 350 0.6 nozzle",
"Voron 2.4 350 0.8 nozzle",
"Voron 2.4 350 1.0 nozzle",
@@ -35,6 +38,7 @@
"Voron Trident 250 0.15 nozzle",
"Voron Trident 250 0.2 nozzle",
"Voron Trident 250 0.25 nozzle",
+ "Voron Trident 250 0.5 nozzle",
"Voron Trident 250 0.6 nozzle",
"Voron Trident 250 0.8 nozzle",
"Voron Trident 250 1.0 nozzle",
@@ -42,6 +46,7 @@
"Voron Trident 300 0.15 nozzle",
"Voron Trident 300 0.2 nozzle",
"Voron Trident 300 0.25 nozzle",
+ "Voron Trident 300 0.5 nozzle",
"Voron Trident 300 0.6 nozzle",
"Voron Trident 300 0.8 nozzle",
"Voron Trident 300 1.0 nozzle",
@@ -49,6 +54,7 @@
"Voron Trident 350 0.15 nozzle",
"Voron Trident 350 0.2 nozzle",
"Voron Trident 350 0.25 nozzle",
+ "Voron Trident 350 0.5 nozzle",
"Voron Trident 350 0.6 nozzle",
"Voron Trident 350 0.8 nozzle",
"Voron Trident 350 1.0 nozzle",
@@ -56,6 +62,7 @@
"Voron 0.1 0.15 nozzle",
"Voron 0.1 0.2 nozzle",
"Voron 0.1 0.25 nozzle",
+ "Voron 0.1 0.5 nozzle",
"Voron 0.1 0.6 nozzle",
"Voron 0.1 0.8 nozzle",
"Voron 0.1 1.0 nozzle",
@@ -63,6 +70,7 @@
"Voron Switchwire 250 0.15 nozzle",
"Voron Switchwire 250 0.2 nozzle",
"Voron Switchwire 250 0.25 nozzle",
+ "Voron Switchwire 250 0.5 nozzle",
"Voron Switchwire 250 0.6 nozzle",
"Voron Switchwire 250 0.8 nozzle",
"Voron Switchwire 250 1.0 nozzle"
diff --git a/resources/profiles/Voron/machine/Voron 0.1 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron 0.1 0.5 nozzle.json
new file mode 100644
index 0000000000..7efe30a3c8
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron 0.1 0.5 nozzle.json
@@ -0,0 +1,29 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron 0.1 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron 0.1",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "120x0",
+ "120x120",
+ "0x120"
+ ],
+ "printable_height": "120",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron 0.1.json b/resources/profiles/Voron/machine/Voron 0.1.json
index d520c09d23..a773f78eda 100644
--- a/resources/profiles/Voron/machine/Voron 0.1.json
+++ b/resources/profiles/Voron/machine/Voron 0.1.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron 0.1",
"model_id": "Voron0",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_120_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron 2.4 250 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron 2.4 250 0.5 nozzle.json
new file mode 100644
index 0000000000..af60cbe29d
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron 2.4 250 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron 2.4 250 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron 2.4 250",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "250x0",
+ "250x250",
+ "0x250"
+ ],
+ "printable_height": "225",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron 2.4 250.json b/resources/profiles/Voron/machine/Voron 2.4 250.json
index a0936a3a8f..b032e4e779 100644
--- a/resources/profiles/Voron/machine/Voron 2.4 250.json
+++ b/resources/profiles/Voron/machine/Voron 2.4 250.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron 2.4 250",
"model_id": "Voron2_250",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_250_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron 2.4 300 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron 2.4 300 0.5 nozzle.json
new file mode 100644
index 0000000000..52fb046b56
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron 2.4 300 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron 2.4 300 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron 2.4 300",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "printable_height": "275",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron 2.4 300.json b/resources/profiles/Voron/machine/Voron 2.4 300.json
index 5291f7a2ff..094357baa4 100644
--- a/resources/profiles/Voron/machine/Voron 2.4 300.json
+++ b/resources/profiles/Voron/machine/Voron 2.4 300.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron 2.4 300",
"model_id": "Voron2_300",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_300_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron 2.4 350 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron 2.4 350 0.5 nozzle.json
new file mode 100644
index 0000000000..856008d6b2
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron 2.4 350 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron 2.4 350 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron 2.4 350",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "325",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron 2.4 350.json b/resources/profiles/Voron/machine/Voron 2.4 350.json
index ae772b063d..785831a3a1 100644
--- a/resources/profiles/Voron/machine/Voron 2.4 350.json
+++ b/resources/profiles/Voron/machine/Voron 2.4 350.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron 2.4 350",
"model_id": "Voron2_350",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_350_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron Switchwire 250 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron Switchwire 250 0.5 nozzle.json
new file mode 100644
index 0000000000..5b8044a8db
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron Switchwire 250 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron Switchwire 250 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron Switchwire 250",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "250x0",
+ "250x210",
+ "0x210"
+ ],
+ "printable_height": "240",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron Switchwire 250.json b/resources/profiles/Voron/machine/Voron Switchwire 250.json
index 6a3e3de7cc..9955eaa057 100644
--- a/resources/profiles/Voron/machine/Voron Switchwire 250.json
+++ b/resources/profiles/Voron/machine/Voron Switchwire 250.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron Switchwire 250",
"model_id": "Voron_Switchwire_250",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "",
diff --git a/resources/profiles/Voron/machine/Voron Trident 250 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron Trident 250 0.5 nozzle.json
new file mode 100644
index 0000000000..f7c94d5454
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron Trident 250 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron Trident 250 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron Trident 250",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "250x0",
+ "250x250",
+ "0x250"
+ ],
+ "printable_height": "250",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron Trident 250.json b/resources/profiles/Voron/machine/Voron Trident 250.json
index d3fe9e5b23..614aa804e2 100644
--- a/resources/profiles/Voron/machine/Voron Trident 250.json
+++ b/resources/profiles/Voron/machine/Voron Trident 250.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron Trident 250",
"model_id": "Voron2_Trident_250",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_250_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron Trident 300 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron Trident 300 0.5 nozzle.json
new file mode 100644
index 0000000000..b1e47991f0
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron Trident 300 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron Trident 300 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron Trident 300",
+ "default_print_profile": "0.25mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "printable_height": "250",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron Trident 300.json b/resources/profiles/Voron/machine/Voron Trident 300.json
index 05bb448a2a..9f5ca659ea 100644
--- a/resources/profiles/Voron/machine/Voron Trident 300.json
+++ b/resources/profiles/Voron/machine/Voron Trident 300.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron Trident 300",
"model_id": "Voron2_Trident_300",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_300_build_plate.stl",
diff --git a/resources/profiles/Voron/machine/Voron Trident 350 0.5 nozzle.json b/resources/profiles/Voron/machine/Voron Trident 350 0.5 nozzle.json
new file mode 100644
index 0000000000..ef3fcbacd6
--- /dev/null
+++ b/resources/profiles/Voron/machine/Voron Trident 350 0.5 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "setting_id": "GM003",
+ "name": "Voron Trident 350 0.5 nozzle",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_klipper_common",
+ "printer_model": "Voron Trident 350",
+ "default_print_profile": "0.30mm Standard 0.5 nozzle @Voron",
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.1"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "250",
+ "printer_variant": "0.5"
+}
diff --git a/resources/profiles/Voron/machine/Voron Trident 350.json b/resources/profiles/Voron/machine/Voron Trident 350.json
index 850c49bb97..7be86f5435 100644
--- a/resources/profiles/Voron/machine/Voron Trident 350.json
+++ b/resources/profiles/Voron/machine/Voron Trident 350.json
@@ -2,7 +2,7 @@
"type": "machine_model",
"name": "Voron Trident 350",
"model_id": "Voron2_Trident_350",
- "nozzle_diameter": "0.4;0.15;0.2;0.25;0.6;0.8;1.0",
+ "nozzle_diameter": "0.4;0.15;0.2;0.25;0.5;0.6;0.8;1.0",
"machine_tech": "FFF",
"family": "VoronDesign",
"bed_model": "Voron_350_build_plate.stl",
diff --git a/resources/profiles/Voron/process/0.10mm Extra Fine 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.10mm Extra Fine 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..f55a77fbc4
--- /dev/null
+++ b/resources/profiles/Voron/process/0.10mm Extra Fine 0.5 nozzle @Voron.json
@@ -0,0 +1,11 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.10mm Extra Fine 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.10",
+ "bottom_shell_layers": "6",
+ "top_shell_layers": "8"
+}
diff --git a/resources/profiles/Voron/process/0.15mm Fine 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.15mm Fine 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..13c74e2724
--- /dev/null
+++ b/resources/profiles/Voron/process/0.15mm Fine 0.5 nozzle @Voron.json
@@ -0,0 +1,11 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.15mm Fine 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.15",
+ "bottom_shell_layers": "4",
+ "top_shell_layers": "6"
+}
diff --git a/resources/profiles/Voron/process/0.20mm Optimal 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.20mm Optimal 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..dd602f1201
--- /dev/null
+++ b/resources/profiles/Voron/process/0.20mm Optimal 0.5 nozzle @Voron.json
@@ -0,0 +1,11 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.20mm Optimal 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.20",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4"
+}
diff --git a/resources/profiles/Voron/process/0.25mm Standard 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.25mm Standard 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..9dc9a48ef2
--- /dev/null
+++ b/resources/profiles/Voron/process/0.25mm Standard 0.5 nozzle @Voron.json
@@ -0,0 +1,11 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.25mm Standard 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.25",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4"
+}
diff --git a/resources/profiles/Voron/process/0.30mm Draft 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.30mm Draft 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..5e56b9e023
--- /dev/null
+++ b/resources/profiles/Voron/process/0.30mm Draft 0.5 nozzle @Voron.json
@@ -0,0 +1,12 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.30mm Draft 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.30",
+ "top_surface_line_width": "0.55",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4"
+}
diff --git a/resources/profiles/Voron/process/0.35mm Extra Draft 0.5 nozzle @Voron.json b/resources/profiles/Voron/process/0.35mm Extra Draft 0.5 nozzle @Voron.json
new file mode 100644
index 0000000000..4e21043a99
--- /dev/null
+++ b/resources/profiles/Voron/process/0.35mm Extra Draft 0.5 nozzle @Voron.json
@@ -0,0 +1,12 @@
+{
+ "type": "process",
+ "setting_id": "GP004",
+ "name": "0.35mm Extra Draft 0.5 nozzle @Voron",
+ "from": "system",
+ "instantiation": "true",
+ "inherits": "fdm_process_voron_common_0_5",
+ "layer_height": "0.35",
+ "top_surface_line_width": "0.55",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4"
+}
diff --git a/resources/profiles/Voron/process/fdm_process_voron_common_0_5.json b/resources/profiles/Voron/process/fdm_process_voron_common_0_5.json
new file mode 100644
index 0000000000..57f5b7dc86
--- /dev/null
+++ b/resources/profiles/Voron/process/fdm_process_voron_common_0_5.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "fdm_process_voron_common_0_5",
+ "from": "system",
+ "instantiation": "false",
+ "inherits": "fdm_process_voron_common",
+ "initial_layer_line_width": "0.52",
+ "initial_layer_print_height": "0.25",
+ "outer_wall_line_width": "0.52",
+ "line_width": "0.52",
+ "sparse_infill_line_width": "0.52",
+ "inner_wall_line_width": "0.52",
+ "internal_solid_infill_line_width": "0.52",
+ "support_line_width": "0.52",
+ "top_surface_line_width": "0.52",
+ "compatible_printers": [
+ "Voron 0.1 0.5 nozzle",
+ "Voron 2.4 250 0.5 nozzle",
+ "Voron 2.4 300 0.5 nozzle",
+ "Voron 2.4 350 0.5 nozzle",
+ "Voron Trident 250 0.5 nozzle",
+ "Voron Trident 300 0.5 nozzle",
+ "Voron Trident 350 0.5 nozzle",
+ "Voron Switchwire 250 0.5 nozzle"
+ ]
+}
diff --git a/resources/web/guide/21/21.js b/resources/web/guide/21/21.js
index 131420dbdd..d7a4d640dc 100644
--- a/resources/web/guide/21/21.js
+++ b/resources/web/guide/21/21.js
@@ -303,12 +303,18 @@ function FilterModelList(keyword) {
function SelectPrinterAll( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", true);
+ $("input[vendor='"+sVendor+"']").each(function() {
+ CheckBoxOnclick(this);
+ });
}
function SelectPrinterNone( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", false);
+ $("input[vendor='"+sVendor+"']").each(function() {
+ CheckBoxOnclick(this);
+ });
}
diff --git a/resources/web/guide/24/24.js b/resources/web/guide/24/24.js
index bc3e33820d..611020f704 100644
--- a/resources/web/guide/24/24.js
+++ b/resources/web/guide/24/24.js
@@ -303,12 +303,18 @@ function FilterModelList(keyword) {
function SelectPrinterAll( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", true);
+ $("input[vendor='"+sVendor+"']").each(function() {
+ CheckBoxOnclick(this);
+ });
}
function SelectPrinterNone( sVendor )
{
$("input[vendor='"+sVendor+"']").prop("checked", false);
+ $("input[vendor='"+sVendor+"']").each(function() {
+ CheckBoxOnclick(this);
+ });
}
function OnExitFilter() {
diff --git a/scripts/generate_presets_vendors.py b/scripts/generate_presets_vendors.py
index 2dd53db53a..ac358ae803 100644
--- a/scripts/generate_presets_vendors.py
+++ b/scripts/generate_presets_vendors.py
@@ -110,6 +110,7 @@ filament_vendors = [
'Justmaker',
'Keene Village Plastics',
'Kexcelled',
+ 'LDO',
'MakerBot',
'MatterHackers',
'MIKA3D',
diff --git a/src/libslic3r/Algorithm/LineSplit.cpp b/src/libslic3r/Algorithm/LineSplit.cpp
index c532e08349..f63033c026 100644
--- a/src/libslic3r/Algorithm/LineSplit.cpp
+++ b/src/libslic3r/Algorithm/LineSplit.cpp
@@ -264,7 +264,7 @@ SplittedLine do_split_line(const ClipperZUtils::ZPath& path, const ExPolygons& c
}
for (const auto segment : node) {
for (const ClipperZUtils::ZPoint& sp : *segment) {
- assert(!is_clip(sp.z()));
+ assert(!is_clip(sp));
result.emplace_back(to_point(sp), true, sp.z());
}
result.back().clipped = false; // Mark the end of the clipped line
diff --git a/src/libslic3r/Algorithm/PathSorting.hpp b/src/libslic3r/Algorithm/PathSorting.hpp
deleted file mode 100644
index ab44627281..0000000000
--- a/src/libslic3r/Algorithm/PathSorting.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef SRC_LIBSLIC3R_PATH_SORTING_HPP_
-#define SRC_LIBSLIC3R_PATH_SORTING_HPP_
-
-#include "AABBTreeLines.hpp"
-#include "BoundingBox.hpp"
-#include "Line.hpp"
-#include "ankerl/unordered_dense.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-namespace Slic3r {
-namespace Algorithm {
-
-//Sorts the paths such that all paths between begin and last_seed are printed first, in some order. The rest of the paths is sorted
-// such that the paths that are touching some of the already printed are printed first, sorted secondary by the distance to the last point of the last
-// printed path.
-// begin, end, and last_seed are random access iterators. touch_limit_distance is used to check if the paths are touching - if any part of the path gets this close
-// to the second, then they touch.
-// convert_to_lines is a lambda that should accept the path as argument and return it as Lines vector, in correct order.
-template
-void sort_paths(RandomAccessIterator begin, RandomAccessIterator end, Point start, double touch_limit_distance, ToLines convert_to_lines)
-{
- size_t paths_count = std::distance(begin, end);
- if (paths_count <= 1)
- return;
-
- auto paths_touch = [touch_limit_distance](const AABBTreeLines::LinesDistancer &left,
- const AABBTreeLines::LinesDistancer &right) {
- for (const Line &l : left.get_lines()) {
- if (right.distance_from_lines(l.a) < touch_limit_distance) {
- return true;
- }
- }
- if (right.distance_from_lines(left.get_lines().back().b) < touch_limit_distance) {
- return true;
- }
-
- for (const Line &l : right.get_lines()) {
- if (left.distance_from_lines(l.a) < touch_limit_distance) {
- return true;
- }
- }
- if (left.distance_from_lines(right.get_lines().back().b) < touch_limit_distance) {
- return true;
- }
- return false;
- };
-
- std::vector> distancers(paths_count);
- for (size_t path_idx = 0; path_idx < paths_count; path_idx++) {
- distancers[path_idx] = AABBTreeLines::LinesDistancer{convert_to_lines(*std::next(begin, path_idx))};
- }
-
- std::vector> dependencies(paths_count);
- for (size_t path_idx = 0; path_idx < paths_count; path_idx++) {
- for (size_t next_path_idx = path_idx + 1; next_path_idx < paths_count; next_path_idx++) {
- if (paths_touch(distancers[path_idx], distancers[next_path_idx])) {
- dependencies[next_path_idx].insert(path_idx);
- }
- }
- }
-
- Point current_point = start;
-
- std::vector> correct_order_and_direction(paths_count);
- size_t unsorted_idx = 0;
- size_t null_idx = size_t(-1);
- size_t next_idx = null_idx;
- bool reverse = false;
- while (unsorted_idx < paths_count) {
- next_idx = null_idx;
- double lines_dist = std::numeric_limits::max();
- for (size_t path_idx = 0; path_idx < paths_count; path_idx++) {
- if (!dependencies[path_idx].empty())
- continue;
-
- double ldist = distancers[path_idx].distance_from_lines(current_point);
- if (ldist < lines_dist) {
- const auto &lines = distancers[path_idx].get_lines();
- double dist_a = (lines.front().a - current_point).cast().squaredNorm();
- double dist_b = (lines.back().b - current_point).cast().squaredNorm();
- next_idx = path_idx;
- reverse = dist_b < dist_a;
- lines_dist = ldist;
- }
- }
-
- // we have valid next_idx, sort it, update dependencies, update current point
- correct_order_and_direction[next_idx] = {unsorted_idx, reverse};
- unsorted_idx++;
- current_point = reverse ? distancers[next_idx].get_lines().front().a : distancers[next_idx].get_lines().back().b;
-
- dependencies[next_idx].insert(null_idx); // prevent it from being selected again
- for (size_t path_idx = 0; path_idx < paths_count; path_idx++) {
- dependencies[path_idx].erase(next_idx);
- }
- }
-
- for (size_t path_idx = 0; path_idx < paths_count; path_idx++) {
- if (correct_order_and_direction[path_idx].second) {
- std::next(begin, path_idx)->reverse();
- }
- }
-
- for (size_t i = 0; i < correct_order_and_direction.size() - 1; i++) {
- bool swapped = false;
- for (size_t j = 0; j < correct_order_and_direction.size() - i - 1; j++) {
- if (correct_order_and_direction[j].first > correct_order_and_direction[j + 1].first) {
- std::swap(correct_order_and_direction[j], correct_order_and_direction[j + 1]);
- std::iter_swap(std::next(begin, j), std::next(begin, j + 1));
- swapped = true;
- }
- }
- if (swapped == false) {
- break;
- }
- }
-}
-
-}} // namespace Slic3r::Algorithm
-
-#endif /*SRC_LIBSLIC3R_PATH_SORTING_HPP_*/
\ No newline at end of file
diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp
index ac7b88af83..35233f1075 100644
--- a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp
+++ b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp
@@ -153,10 +153,19 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
// ^ current
Point intersection_point;
bool has_intersection = Line(previous_previous.p, previous.p).intersection_infinite(Line(current.p, next.p), &intersection_point);
+ const auto dist_greater = [](const Point& p1, const Point& p2, const int64_t threshold) {
+ const auto vec = (p1 - p2).cwiseAbs().cast();
+ if(vec.x() > threshold || vec.y() > threshold) {
+ // If this condition is true, the distance is definitely greater than the threshold.
+ // We don't need to calculate the squared norm at all, which avoid potential arithmetic overflow.
+ return true;
+ }
+ return vec.squaredNorm() > threshold;
+ };
if (!has_intersection
|| Line::distance_to_infinite_squared(intersection_point, previous.p, current.p) > double(allowed_error_distance_squared)
- || (intersection_point - previous.p).cast().squaredNorm() > smallest_line_segment_squared // The intersection point is way too far from the 'previous'
- || (intersection_point - current.p).cast().squaredNorm() > smallest_line_segment_squared) // and 'current' points, so it shouldn't replace 'current'
+ || dist_greater(intersection_point, previous.p, smallest_line_segment_squared) // The intersection point is way too far from the 'previous'
+ || dist_greater(intersection_point, current.p, smallest_line_segment_squared)) // and 'current' points, so it shouldn't replace 'current'
{
// We can't find a better spot for it, but the size of the line is more than 5 micron.
// So the only thing we can do here is leave it in...
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 2c362dba23..8650ab2f2c 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -32,7 +32,6 @@ set(lisbslic3r_sources
AABBMesh.cpp
Algorithm/LineSplit.hpp
Algorithm/LineSplit.cpp
- Algorithm/PathSorting.hpp
Algorithm/RegionExpansion.hpp
Algorithm/RegionExpansion.cpp
AnyPtr.hpp
@@ -504,7 +503,7 @@ if (_opts)
target_compile_options(libslic3r_cgal PRIVATE "${_opts_bad}")
endif()
-target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} libigl mcut)
+target_link_libraries(libslic3r_cgal PRIVATE ${_cgal_tgt} libigl mcut boost_libs)
if (MSVC AND "${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") # 32 bit MSVC workaround
target_compile_definitions(libslic3r_cgal PRIVATE CGAL_DO_NOT_USE_MPZF)
@@ -580,10 +579,6 @@ target_link_libraries(libslic3r
opencv_world
)
-if(NOT SLIC3R_STATIC)
- target_compile_definitions(libslic3r PUBLIC BOOST_ALL_DYN_LINK)
-endif()
-
if(NOT WIN32)
target_link_libraries(libslic3r freetype)
if (NOT APPLE)
diff --git a/src/libslic3r/Color.hpp b/src/libslic3r/Color.hpp
index ad119d3c56..c3c0d49e84 100644
--- a/src/libslic3r/Color.hpp
+++ b/src/libslic3r/Color.hpp
@@ -67,6 +67,7 @@ public:
static const ColorRGB YELLOW() { return { 1.0f, 1.0f, 0.0f }; }
static const ColorRGB WHITE() { return { 1.0f, 1.0f, 1.0f }; }
static const ColorRGB ORCA() { return {0.0f, 150.f / 255.0f, 136.0f / 255}; }
+ static const ColorRGB WARNING() { return {241.0f / 255, 117.f / 255.0f, 78.0f / 255}; }
static const ColorRGB X() { return { 0.75f, 0.0f, 0.0f }; }
static const ColorRGB Y() { return { 0.0f, 0.75f, 0.0f }; }
diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp
index 6e3886d6db..e75698f80f 100644
--- a/src/libslic3r/Fill/Fill.cpp
+++ b/src/libslic3r/Fill/Fill.cpp
@@ -130,7 +130,252 @@ struct SurfaceFill {
// Detect narrow infill regions
// Based on the anti-vibration algorithm from PrusaSlicer:
-// https://github.com/prusa3d/PrusaSlicer/blob/94290e09d75f23719c3d2ab2398737c8be4c3fd6/src/libslic3r/Fill/FillEnsuring.cpp#L100-L289
+// https://github.com/prusa3d/PrusaSlicer/blob/5dc04b4e8f14f65bbcc5377d62cad3e86c2aea36/src/libslic3r/Fill/FillEnsuring.cpp#L37-L273
+
+static coord_t _MAX_LINE_LENGTH_TO_FILTER() // 4 mm.
+{
+ return scaled(4.);
+}
+const constexpr size_t MAX_SKIPS_ALLOWED = 2; // Skip means propagation through long line.
+const constexpr size_t MIN_DEPTH_FOR_LINE_REMOVING = 5;
+
+struct LineNode
+{
+ struct State
+ {
+ // The total number of long lines visited before this node was reached.
+ // We just need the minimum number of all possible paths to decide whether we can remove the line or not.
+ int min_skips_taken = 0;
+ // The total number of short lines visited before this node was reached.
+ int total_short_lines = 0;
+ // Some initial line is touching some long line. This information is propagated to neighbors.
+ bool initial_touches_long_lines = false;
+ bool initialized = false;
+
+ void reset() {
+ this->min_skips_taken = 0;
+ this->total_short_lines = 0;
+ this->initial_touches_long_lines = false;
+ this->initialized = false;
+ }
+ };
+
+ explicit LineNode(const Line &line) : line(line) {}
+
+ Line line;
+ // Pointers to line nodes in the previous and the next section that overlap with this line.
+ std::vector next_section_overlapping_lines;
+ std::vector prev_section_overlapping_lines;
+
+ bool is_removed = false;
+
+ State state;
+
+ // Return true if some initial line is touching some long line and this information was propagated into the current line.
+ bool is_initial_line_touching_long_lines() const {
+ if (prev_section_overlapping_lines.empty())
+ return false;
+
+ for (LineNode *line_node : prev_section_overlapping_lines) {
+ if (line_node->state.initial_touches_long_lines)
+ return true;
+ }
+
+ return false;
+ }
+
+ // Return true if the current line overlaps with some long line in the previous section.
+ bool is_touching_long_lines_in_previous_layer() const {
+ if (prev_section_overlapping_lines.empty())
+ return false;
+
+ const auto MAX_LINE_LENGTH_TO_FILTER = _MAX_LINE_LENGTH_TO_FILTER();
+ for (LineNode *line_node : prev_section_overlapping_lines) {
+ if (!line_node->is_removed && line_node->line.length() >= MAX_LINE_LENGTH_TO_FILTER)
+ return true;
+ }
+
+ return false;
+ }
+
+ // Return true if the current line overlaps with some line in the next section.
+ bool has_next_layer_neighbours() const {
+ if (next_section_overlapping_lines.empty())
+ return false;
+
+ for (LineNode *line_node : next_section_overlapping_lines) {
+ if (!line_node->is_removed)
+ return true;
+ }
+
+ return false;
+ }
+};
+
+using LineNodes = std::vector;
+
+inline bool are_lines_overlapping_in_y_axes(const Line &first_line, const Line &second_line) {
+ return (second_line.a.y() <= first_line.a.y() && first_line.a.y() <= second_line.b.y())
+ || (second_line.a.y() <= first_line.b.y() && first_line.b.y() <= second_line.b.y())
+ || (first_line.a.y() <= second_line.a.y() && second_line.a.y() <= first_line.b.y())
+ || (first_line.a.y() <= second_line.b.y() && second_line.b.y() <= first_line.b.y());
+}
+
+bool can_line_note_be_removed(const LineNode &line_node) {
+ const auto MAX_LINE_LENGTH_TO_FILTER = _MAX_LINE_LENGTH_TO_FILTER();
+ return (line_node.line.length() < MAX_LINE_LENGTH_TO_FILTER)
+ && (line_node.state.total_short_lines > int(MIN_DEPTH_FOR_LINE_REMOVING)
+ || (!line_node.is_initial_line_touching_long_lines() && !line_node.has_next_layer_neighbours()));
+}
+
+// Remove the node and propagate its removal to the previous sections.
+void propagate_line_node_remove(const LineNode &line_node) {
+ std::queue line_node_queue;
+ for (LineNode *prev_line : line_node.prev_section_overlapping_lines) {
+ if (prev_line->is_removed)
+ continue;
+
+ line_node_queue.emplace(prev_line);
+ }
+
+ for (; !line_node_queue.empty(); line_node_queue.pop()) {
+ LineNode &line_to_check = *line_node_queue.front();
+
+ if (can_line_note_be_removed(line_to_check)) {
+ line_to_check.is_removed = true;
+
+ for (LineNode *prev_line : line_to_check.prev_section_overlapping_lines) {
+ if (prev_line->is_removed)
+ continue;
+
+ line_node_queue.emplace(prev_line);
+ }
+ }
+ }
+}
+
+// Filter out short extrusions that could create vibrations.
+static std::vector filter_vibrating_extrusions(const std::vector &lines_sections) {
+ // Initialize all line nodes.
+ std::vector line_nodes_sections(lines_sections.size());
+ for (const Lines &lines_section : lines_sections) {
+ const size_t section_idx = &lines_section - lines_sections.data();
+
+ line_nodes_sections[section_idx].reserve(lines_section.size());
+ for (const Line &line : lines_section) {
+ line_nodes_sections[section_idx].emplace_back(line);
+ }
+ }
+
+ // Precalculate for each line node which line nodes in the previous and next section this line node overlaps.
+ for (auto curr_lines_section_it = line_nodes_sections.begin(); curr_lines_section_it != line_nodes_sections.end(); ++curr_lines_section_it) {
+ if (curr_lines_section_it != line_nodes_sections.begin()) {
+ const auto prev_lines_section_it = std::prev(curr_lines_section_it);
+ for (LineNode &curr_line : *curr_lines_section_it) {
+ for (LineNode &prev_line : *prev_lines_section_it) {
+ if (are_lines_overlapping_in_y_axes(curr_line.line, prev_line.line)) {
+ curr_line.prev_section_overlapping_lines.emplace_back(&prev_line);
+ }
+ }
+ }
+ }
+
+ if (std::next(curr_lines_section_it) != line_nodes_sections.end()) {
+ const auto next_lines_section_it = std::next(curr_lines_section_it);
+ for (LineNode &curr_line : *curr_lines_section_it) {
+ for (LineNode &next_line : *next_lines_section_it) {
+ if (are_lines_overlapping_in_y_axes(curr_line.line, next_line.line)) {
+ curr_line.next_section_overlapping_lines.emplace_back(&next_line);
+ }
+ }
+ }
+ }
+ }
+
+ const auto MAX_LINE_LENGTH_TO_FILTER = _MAX_LINE_LENGTH_TO_FILTER();
+ // Select each section as the initial lines section and propagate line node states from this initial lines section to the last lines section.
+ // During this propagation, we remove those lines that meet the conditions for its removal.
+ // When some line is removed, we propagate this removal to previous layers.
+ for (size_t initial_line_section_idx = 0; initial_line_section_idx < line_nodes_sections.size(); ++initial_line_section_idx) {
+ // Stars from non-removed short lines.
+ for (LineNode &initial_line : line_nodes_sections[initial_line_section_idx]) {
+ if (initial_line.is_removed || initial_line.line.length() >= MAX_LINE_LENGTH_TO_FILTER)
+ continue;
+
+ initial_line.state.reset();
+ initial_line.state.total_short_lines = 1;
+ initial_line.state.initial_touches_long_lines = initial_line.is_touching_long_lines_in_previous_layer();
+ initial_line.state.initialized = true;
+ }
+
+ // Iterate from the initial lines section until the last lines section.
+ for (size_t propagation_line_section_idx = initial_line_section_idx; propagation_line_section_idx < line_nodes_sections.size(); ++propagation_line_section_idx) {
+ // Before we propagate node states into next lines sections, we reset the state of all line nodes in the next line section.
+ if (propagation_line_section_idx + 1 < line_nodes_sections.size()) {
+ for (LineNode &propagation_line : line_nodes_sections[propagation_line_section_idx + 1]) {
+ propagation_line.state.reset();
+ }
+ }
+
+ for (LineNode &propagation_line : line_nodes_sections[propagation_line_section_idx]) {
+ if (propagation_line.is_removed || !propagation_line.state.initialized)
+ continue;
+
+ for (LineNode *neighbour_line : propagation_line.next_section_overlapping_lines) {
+ if (neighbour_line->is_removed)
+ continue;
+
+ const bool is_short_line = neighbour_line->line.length() < MAX_LINE_LENGTH_TO_FILTER;
+ const bool is_skip_allowed = propagation_line.state.min_skips_taken < int(MAX_SKIPS_ALLOWED);
+
+ if (!is_short_line && !is_skip_allowed)
+ continue;
+
+ const int neighbour_total_short_lines = propagation_line.state.total_short_lines + int(is_short_line);
+ const int neighbour_min_skips_taken = propagation_line.state.min_skips_taken + int(!is_short_line);
+
+ if (neighbour_line->state.initialized) {
+ // When the state of the node was previously filled, then we need to update data in such a way
+ // that will maximize the possibility of removing this node.
+ neighbour_line->state.min_skips_taken = std::max(neighbour_line->state.min_skips_taken, neighbour_total_short_lines);
+ neighbour_line->state.min_skips_taken = std::min(neighbour_line->state.min_skips_taken, neighbour_min_skips_taken);
+
+ // We will keep updating neighbor initial_touches_long_lines until it is equal to false.
+ if (neighbour_line->state.initial_touches_long_lines) {
+ neighbour_line->state.initial_touches_long_lines = propagation_line.state.initial_touches_long_lines;
+ }
+ } else {
+ neighbour_line->state.total_short_lines = neighbour_total_short_lines;
+ neighbour_line->state.min_skips_taken = neighbour_min_skips_taken;
+ neighbour_line->state.initial_touches_long_lines = propagation_line.state.initial_touches_long_lines;
+ neighbour_line->state.initialized = true;
+ }
+ }
+
+ if (can_line_note_be_removed(propagation_line)) {
+ // Remove the current node and propagate its removal to the previous sections.
+ propagation_line.is_removed = true;
+ propagate_line_node_remove(propagation_line);
+ }
+ }
+ }
+ }
+
+ // Create lines sections without filtered-out lines.
+ std::vector lines_sections_out(line_nodes_sections.size());
+ for (const std::vector &line_nodes_section : line_nodes_sections) {
+ const size_t section_idx = &line_nodes_section - line_nodes_sections.data();
+
+ for (const LineNode &line_node : line_nodes_section) {
+ if (!line_node.is_removed) {
+ lines_sections_out[section_idx].emplace_back(line_node.line);
+ }
+ }
+ }
+
+ return lines_sections_out;
+}
+
void split_solid_surface(size_t layer_id, const SurfaceFill &fill, ExPolygons &normal_infill, ExPolygons &narrow_infill)
{
assert(fill.surface.surface_type == stInternalSolid);
@@ -152,11 +397,6 @@ void split_solid_surface(size_t layer_id, const SurfaceFill &fill, ExPolygons &n
constexpr double connect_extrusions = true;
- auto segments_overlap = [](coord_t alow, coord_t ahigh, coord_t blow, coord_t bhigh) {
- return (alow >= blow && alow <= bhigh) || (ahigh >= blow && ahigh <= bhigh) || (blow >= alow && blow <= ahigh) ||
- (bhigh >= alow && bhigh <= ahigh);
- };
-
const coord_t scaled_spacing = scaled(fill.params.spacing);
double distance_limit_reconnection = 2.0 * double(scaled_spacing);
double squared_distance_limit_reconnection = distance_limit_reconnection * distance_limit_reconnection;
@@ -180,22 +420,23 @@ void split_solid_surface(size_t layer_id, const SurfaceFill &fill, ExPolygons &n
AABBTreeLines::LinesDistancer area_walls{to_lines(inner_area)};
- const size_t n_vlines = (bb.max.x() - bb.min.x() + scaled_spacing - 1) / scaled_spacing;
- std::vector vertical_lines(n_vlines);
- coord_t y_min = bb.min.y();
- coord_t y_max = bb.max.y();
+ const size_t n_vlines = (bb.max.x() - bb.min.x() + scaled_spacing - 1) / scaled_spacing;
+ const coord_t y_min = bb.min.y();
+ const coord_t y_max = bb.max.y();
+ Lines vertical_lines(n_vlines);
for (size_t i = 0; i < n_vlines; i++) {
coord_t x = bb.min.x() + i * double(scaled_spacing);
vertical_lines[i].a = Point{x, y_min};
vertical_lines[i].b = Point{x, y_max};
}
- if (vertical_lines.size() > 0) {
+
+ if (!vertical_lines.empty()) {
vertical_lines.push_back(vertical_lines.back());
vertical_lines.back().a = Point{coord_t(bb.min.x() + n_vlines * double(scaled_spacing) + scaled_spacing * 0.5), y_min};
vertical_lines.back().b = Point{vertical_lines.back().a.x(), y_max};
}
- std::vector> polygon_sections(n_vlines);
+ std::vector polygon_sections(n_vlines);
for (size_t i = 0; i < n_vlines; i++) {
const auto intersections = area_walls.intersections_with_line(vertical_lines[i]);
@@ -211,87 +452,7 @@ void split_solid_surface(size_t layer_id, const SurfaceFill &fill, ExPolygons &n
}
}
- struct Node
- {
- int section_idx;
- int line_idx;
- int skips_taken = 0;
- bool neighbours_explored = false;
- std::vector> neighbours{};
- };
-
- coord_t length_filter = scale_(4);
- size_t skips_allowed = 2;
- size_t min_removal_conut = 5;
- for (int section_idx = 0; section_idx < int(polygon_sections.size()); ++section_idx) {
- for (int line_idx = 0; line_idx < int(polygon_sections[section_idx].size()); ++line_idx) {
- if (const Line &line = polygon_sections[section_idx][line_idx]; line.a != line.b && line.length() < length_filter) {
- std::set> to_remove{{section_idx, line_idx}};
- std::vector to_visit{{section_idx, line_idx}};
-
- bool initial_touches_long_lines = false;
- if (section_idx > 0) {
- for (int prev_line_idx = 0; prev_line_idx < int(polygon_sections[section_idx - 1].size()); ++prev_line_idx) {
- if (const Line &nl = polygon_sections[section_idx - 1][prev_line_idx];
- nl.a != nl.b && segments_overlap(line.a.y(), line.b.y(), nl.a.y(), nl.b.y())) {
- initial_touches_long_lines = true;
- }
- }
- }
-
- while (!to_visit.empty()) {
- Node curr = to_visit.back();
- const Line &curr_l = polygon_sections[curr.section_idx][curr.line_idx];
- if (curr.neighbours_explored) {
- bool is_valid_for_removal = (curr_l.length() < length_filter) &&
- ((int(to_remove.size()) - curr.skips_taken > int(min_removal_conut)) ||
- (curr.neighbours.empty() && !initial_touches_long_lines));
- if (!is_valid_for_removal) {
- for (const auto &n : curr.neighbours) {
- if (to_remove.find(n) != to_remove.end()) {
- is_valid_for_removal = true;
- break;
- }
- }
- }
- if (!is_valid_for_removal) {
- to_remove.erase({curr.section_idx, curr.line_idx});
- }
- to_visit.pop_back();
- } else {
- to_visit.back().neighbours_explored = true;
- int curr_index = to_visit.size() - 1;
- bool can_use_skip = curr_l.length() <= length_filter && curr.skips_taken < int(skips_allowed);
- if (curr.section_idx + 1 < int(polygon_sections.size())) {
- for (int lidx = 0; lidx < int(polygon_sections[curr.section_idx + 1].size()); ++lidx) {
- if (const Line &nl = polygon_sections[curr.section_idx + 1][lidx];
- nl.a != nl.b && segments_overlap(curr_l.a.y(), curr_l.b.y(), nl.a.y(), nl.b.y()) &&
- (nl.length() < length_filter || can_use_skip)) {
- to_visit[curr_index].neighbours.push_back({curr.section_idx + 1, lidx});
- to_remove.insert({curr.section_idx + 1, lidx});
- Node next_node{curr.section_idx + 1, lidx, curr.skips_taken + (nl.length() >= length_filter)};
- to_visit.push_back(next_node);
- }
- }
- }
- }
- }
-
- for (const auto &pair : to_remove) {
- Line &l = polygon_sections[pair.first][pair.second];
- l.a = l.b;
- }
- }
- }
- }
-
- for (size_t section_idx = 0; section_idx < polygon_sections.size(); section_idx++) {
- polygon_sections[section_idx].erase(std::remove_if(polygon_sections[section_idx].begin(), polygon_sections[section_idx].end(),
- [](const Line &s) { return s.a == s.b; }),
- polygon_sections[section_idx].end());
- std::sort(polygon_sections[section_idx].begin(), polygon_sections[section_idx].end(),
- [](const Line &a, const Line &b) { return a.a.y() < b.b.y(); });
- }
+ polygon_sections = filter_vibrating_extrusions(polygon_sections);
Polygons reconstructed_area{};
// reconstruct polygon from polygon sections
diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp
index 206fc2aacd..f13181ad27 100644
--- a/src/libslic3r/Format/bbs_3mf.cpp
+++ b/src/libslic3r/Format/bbs_3mf.cpp
@@ -6813,7 +6813,12 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
return false;
}
- std::string type = (volume->type() == ModelVolumeType::MODEL_PART)?"model":"other";
+ // Orca#7574: always use "model" type to follow the 3MF Core Specification:
+ // https://github.com/3MFConsortium/spec_core/blob/20c079eef39e45ed223b8443dc9f34cbe32dc2c2/3MF%20Core%20Specification.md#3431-item-element
+ // > Note: items MUST NOT reference objects of type "other", either directly or recursively.
+ // This won't break anything because when loading the file Orca (and Bambu) simply does not care about the actual object type at all (as long as it's one of "model" & "other");
+ // But PrusaSlicer requires the type to be "model".
+ std::string type = "model";
output_buffer += " <";
output_buffer += OBJECT_TAG;
diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp
index e61afd66b7..95efda7453 100644
--- a/src/libslic3r/GCode.cpp
+++ b/src/libslic3r/GCode.cpp
@@ -1804,6 +1804,7 @@ enum BambuBedType {
bbtEngineeringPlate = 2,
bbtHighTemperaturePlate = 3,
bbtTexturedPEIPlate = 4,
+ bbtSuperTackPlate = 5,
};
static BambuBedType to_bambu_bed_type(BedType type)
@@ -1819,6 +1820,8 @@ static BambuBedType to_bambu_bed_type(BedType type)
bambu_bed_type = bbtTexturedPEIPlate;
else if (type == btPCT)
bambu_bed_type = bbtCoolPlate;
+ else if (type == btSuperTack)
+ bambu_bed_type = bbtSuperTackPlate;
return bambu_bed_type;
}
@@ -1910,36 +1913,42 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
if (!print.config().small_area_infill_flow_compensation_model.empty())
m_small_area_infill_flow_compensator = make_unique(print.config());
-
- file.write_format("; HEADER_BLOCK_START\n");
- // Write information on the generator.
- file.write_format("; generated by %s on %s\n", Slic3r::header_slic3r_generated().c_str(), Slic3r::Utils::local_timestamp().c_str());
- if (is_bbl_printers)
- file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str());
- //BBS: total layer number
- file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Total_Layer_Number_Placeholder).c_str());
- m_enable_exclude_object = config().exclude_object;
- //Orca: extra check for bbl printer
- if (is_bbl_printers) {
- if (print.calib_params().mode == CalibMode::Calib_None) { // Don't support skipping in cali mode
- // list all label_object_id with sorted order here
- m_enable_exclude_object = true;
- m_label_objects_ids.clear();
- m_label_objects_ids.reserve(print.num_object_instances());
- for (const PrintObject *print_object : print.objects())
- for (const PrintInstance &print_instance : print_object->instances())
- m_label_objects_ids.push_back(print_instance.model_instance->get_labeled_id());
-
- std::sort(m_label_objects_ids.begin(), m_label_objects_ids.end());
-
- std::string objects_id_list = "; model label id: ";
- for (auto it = m_label_objects_ids.begin(); it != m_label_objects_ids.end(); it++)
- objects_id_list += (std::to_string(*it) + (it != m_label_objects_ids.end() - 1 ? "," : "\n"));
- file.writeln(objects_id_list);
- } else {
- m_enable_exclude_object = false;
- m_label_objects_ids.clear();
- }
+ // Orca: Don't output Header block if BTT thumbnail is identified in the list
+ // Get the thumbnails value as a string
+ std::string thumbnails_value = print.config().option("thumbnails")->value;
+ // search string for the BTT_TFT label
+ bool has_BTT_thumbnail = (thumbnails_value.find("BTT_TFT") != std::string::npos);
+
+ if(!has_BTT_thumbnail){
+ file.write_format("; HEADER_BLOCK_START\n");
+ // Write information on the generator.
+ file.write_format("; generated by %s on %s\n", Slic3r::header_slic3r_generated().c_str(), Slic3r::Utils::local_timestamp().c_str());
+ if (is_bbl_printers)
+ file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder).c_str());
+ //BBS: total layer number
+ file.write_format(";%s\n", GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Total_Layer_Number_Placeholder).c_str());
+ m_enable_exclude_object = config().exclude_object;
+ //Orca: extra check for bbl printer
+ if (is_bbl_printers) {
+ if (print.calib_params().mode == CalibMode::Calib_None) { // Don't support skipping in cali mode
+ // list all label_object_id with sorted order here
+ m_enable_exclude_object = true;
+ m_label_objects_ids.clear();
+ m_label_objects_ids.reserve(print.num_object_instances());
+ for (const PrintObject *print_object : print.objects())
+ for (const PrintInstance &print_instance : print_object->instances())
+ m_label_objects_ids.push_back(print_instance.model_instance->get_labeled_id());
+
+ std::sort(m_label_objects_ids.begin(), m_label_objects_ids.end());
+
+ std::string objects_id_list = "; model label id: ";
+ for (auto it = m_label_objects_ids.begin(); it != m_label_objects_ids.end(); it++)
+ objects_id_list += (std::to_string(*it) + (it != m_label_objects_ids.end() - 1 ? "," : "\n"));
+ file.writeln(objects_id_list);
+ } else {
+ m_enable_exclude_object = false;
+ m_label_objects_ids.clear();
+ }
}
{
@@ -1961,7 +1970,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
}
file.write_format("; HEADER_BLOCK_END\n\n");
-
+ }
// BBS: write global config at the beginning of gcode file because printer
// need these config information
@@ -5993,7 +6002,7 @@ std::string GCode::travel_to(const Point& point, ExtrusionRole role, std::string
m_wipe.reset_path();*/
Point last_post_before_retract = this->last_pos();
- gcode += this->retract(false, false, lift_type);
+ gcode += this->retract(false, false, lift_type, role);
// When "Wipe while retracting" is enabled, then extruder moves to another position, and travel from this position can cross perimeters.
// Because of it, it is necessary to call avoid crossing perimeters again with new starting point after calling retraction()
// FIXME Lukas H.: Try to predict if this second calling of avoid crossing perimeters will be needed or not. It could save computations.
@@ -6195,7 +6204,7 @@ bool GCode::needs_retraction(const Polyline &travel, ExtrusionRole role, LiftTyp
return true;
}
-std::string GCode::retract(bool toolchange, bool is_last_retraction, LiftType lift_type)
+std::string GCode::retract(bool toolchange, bool is_last_retraction, LiftType lift_type, ExtrusionRole role)
{
std::string gcode;
@@ -6213,7 +6222,8 @@ std::string GCode::retract(bool toolchange, bool is_last_retraction, LiftType li
(the extruder might be already retracted fully or partially). We call these
methods even if we performed wipe, since this will ensure the entire retraction
length is honored in case wipe path was too short. */
- gcode += toolchange ? m_writer.retract_for_toolchange() : m_writer.retract();
+ if (role != erTopSolidInfill || EXTRUDER_CONFIG(retract_on_top_layer))
+ gcode += toolchange ? m_writer.retract_for_toolchange() : m_writer.retract();
gcode += m_writer.reset_e();
// Orca: check if should + can lift (roughly from SuperSlicer)
diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp
index 843b4a39da..5f92fd6237 100644
--- a/src/libslic3r/GCode.hpp
+++ b/src/libslic3r/GCode.hpp
@@ -223,7 +223,7 @@ public:
std::string travel_to(const Point& point, ExtrusionRole role, std::string comment, double z = DBL_MAX);
bool needs_retraction(const Polyline& travel, ExtrusionRole role, LiftType& lift_type);
- std::string retract(bool toolchange = false, bool is_last_retraction = false, LiftType lift_type = LiftType::NormalLift);
+ std::string retract(bool toolchange = false, bool is_last_retraction = false, LiftType lift_type = LiftType::NormalLift, ExtrusionRole role = erNone);
std::string unretract() { return m_writer.unlift() + m_writer.unretract(); }
std::string set_extruder(unsigned int extruder_id, double print_z, bool by_object=false);
bool is_BBL_Printer();
diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp
index 2f4938bc7a..c83d854ee4 100644
--- a/src/libslic3r/GCode/CoolingBuffer.cpp
+++ b/src/libslic3r/GCode/CoolingBuffer.cpp
@@ -151,6 +151,7 @@ struct PerExtruderAdjustments
}
time_total += line.time;
}
+ this->time_total = time_total;
return time_total;
}
// Slow down each adjustable G-code line proportionally by a factor.
@@ -166,6 +167,7 @@ struct PerExtruderAdjustments
}
time_total += line.time;
}
+ this->time_total = time_total;
return time_total;
}
@@ -204,6 +206,7 @@ struct PerExtruderAdjustments
// Used by non-proportional slow down.
void slow_down_to_feedrate(float min_feedrate) {
assert(this->slow_down_min_speed < min_feedrate + EPSILON);
+ float time_total = 0.f;
for (size_t i = 0; i < n_lines_adjustable; ++ i) {
CoolingLine &line = lines[i];
if (line.feedrate > min_feedrate) {
@@ -211,7 +214,9 @@ struct PerExtruderAdjustments
line.feedrate = min_feedrate;
line.slowdown = true;
}
+ time_total += line.time;
}
+ this->time_total = time_total;
}
// Extruder, for which the G-code will be adjusted.
@@ -346,6 +351,10 @@ std::vector CoolingBuffer::parse_layer_gcode(const std::
// for a sequence of extrusion moves.
size_t active_speed_modifier = size_t(-1);
+ // Orca: Whether we had our first extrusion in this layer.
+ // Time of any other movements before the first extrusion will be excluded from the layer time.
+ bool layer_had_extrusion = false;
+
for (; *line_start != 0; line_start = line_end)
{
while (*line_end != '\n' && *line_end != 0)
@@ -404,6 +413,10 @@ std::vector CoolingBuffer::parse_layer_gcode(const std::
line.type |= CoolingLine::TYPE_EXTERNAL_PERIMETER;
if (wipe)
line.type |= CoolingLine::TYPE_WIPE;
+
+ // Orca: only slow down movements since the first extrusion
+ if (boost::contains(sline, ";_EXTRUDE_SET_SPEED"))
+ layer_had_extrusion = true;
// ORCA: Dont slowdown external perimeters for layer time feature
// use the adjustment pointer to ensure the value for the current extruder (filament) is used.
@@ -514,6 +527,13 @@ std::vector CoolingBuffer::parse_layer_gcode(const std::
} else if (boost::starts_with(sline, ";_FORCE_RESUME_FAN_SPEED")) {
line.type = CoolingLine::TYPE_FORCE_RESUME_FAN;
}
+
+ // Orca: For any movements before this layer's first ever extrusion, we exclude them from the layer time calculation.
+ if (!layer_had_extrusion) {
+ assert((line.type & CoolingLine::TYPE_ADJUSTABLE) == 0);
+ line.time = line.time_max = 0;
+ }
+
if (line.type != 0)
adjustment->lines.emplace_back(std::move(line));
}
@@ -535,8 +555,7 @@ static inline void extruder_range_slow_down_non_proportional(
for (PerExtruderAdjustments *adj : by_min_print_speed) {
adj->idx_line_begin = 0;
adj->idx_line_end = 0;
- assert(adj->idx_line_begin < adj->n_lines_adjustable);
- if (adj->lines[adj->idx_line_begin].feedrate > feedrate)
+ if (adj->idx_line_begin < adj->n_lines_adjustable && adj->lines[adj->idx_line_begin].feedrate> feedrate)
feedrate = adj->lines[adj->idx_line_begin].feedrate;
}
assert(feedrate > 0.f);
@@ -623,6 +642,7 @@ float CoolingBuffer::calculate_layer_slowdown(std::vectorslow_down_layer_time < adj2->slow_down_layer_time; });
diff --git a/src/libslic3r/GCode/FanMover.cpp b/src/libslic3r/GCode/FanMover.cpp
index 762d251b5b..b21711b5a7 100644
--- a/src/libslic3r/GCode/FanMover.cpp
+++ b/src/libslic3r/GCode/FanMover.cpp
@@ -50,7 +50,11 @@ float get_axis_value(const std::string& line, char axis)
char match[3] = " X";
match[1] = axis;
- size_t pos = line.find(match) + 2;
+ size_t pos = line.find(match);
+ if (pos == std::string::npos) {
+ return NAN;
+ }
+ pos += 2;
//size_t end = std::min(line.find(' ', pos + 1), line.find(';', pos + 1));
// Try to parse the numeric value.
const char* c = line.c_str();
@@ -83,6 +87,15 @@ int16_t get_fan_speed(const std::string &line, GCodeFlavor flavor) {
if (flavor == (gcfMach3) || flavor == (gcfMachinekit)) {
return (int16_t)get_axis_value(line, 'P');
} else {
+ // Bambu machines use both M106 P1(not P0!) and M106 for part cooling fan.
+ // Non-bambu machines usually use M106 (without P parameter) for part cooling fan.
+ // P2 is reserved for auxiliary fan regardless of bambu or not.
+ // To keep compatibility with Bambu machines, we accept M106 and M106 P1 as the only two valid form
+ // of gcode that control the part cooling fan. Any other command will be ignored!
+ const auto idx = get_axis_value(line, 'P');
+ if (!isnan(idx) && idx != 1.0f) {
+ return -1;
+ }
return (int16_t)get_axis_value(line, 'S');
}
} else if (line.compare(0, 4, "M127") == 0 || line.compare(0, 4, "M107") == 0) {
diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp
index 757939637e..f1bae32ebc 100644
--- a/src/libslic3r/GCode/GCodeProcessor.cpp
+++ b/src/libslic3r/GCode/GCodeProcessor.cpp
@@ -98,6 +98,8 @@ const std::vector GCodeProcessor::Reserved_Tags_compatible = {
const std::string GCodeProcessor::Flush_Start_Tag = " FLUSH_START";
const std::string GCodeProcessor::Flush_End_Tag = " FLUSH_END";
+//Orca: External device purge tag
+const std::string GCodeProcessor::External_Purge_Tag = " EXTERNAL_PURGE";
const float GCodeProcessor::Wipe_Width = 0.05f;
const float GCodeProcessor::Wipe_Height = 0.05f;
@@ -2289,6 +2291,24 @@ void GCodeProcessor::process_tags(const std::string_view comment, bool producers
m_flushing = false;
return;
}
+
+ // Orca: Integrate filament consumption for purging performed to an external device and controlled via macros
+ // (eg. Happy Hare) in the filament consumption stats.
+ if (boost::starts_with(comment, GCodeProcessor::External_Purge_Tag)) {
+ std::regex numberRegex(R"(\d+\.\d+)");
+ std::smatch match;
+ std::string line(comment);
+ if (std::regex_search(line, match, numberRegex)) {
+ float filament_diameter = (static_cast(m_extruder_id) < m_result.filament_diameters.size()) ? m_result.filament_diameters[m_extruder_id] : m_result.filament_diameters.back();
+ float filament_radius = 0.5f * filament_diameter;
+ float area_filament_cross_section = static_cast(M_PI) * sqr(filament_radius);
+
+ float dE = std::stof(match.str());
+ float volume_extruded_filament = area_filament_cross_section * dE;
+ m_used_filaments.update_flush_per_filament(m_extruder_id, volume_extruded_filament);
+ }
+ return;
+ }
if (!producers_enabled || m_producer == EProducer::OrcaSlicer) {
// height tag
diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp
index 21403cc205..e7b6e6f883 100644
--- a/src/libslic3r/GCode/GCodeProcessor.hpp
+++ b/src/libslic3r/GCode/GCodeProcessor.hpp
@@ -272,6 +272,7 @@ class Print;
static const std::vector Reserved_Tags_compatible;
static const std::string Flush_Start_Tag;
static const std::string Flush_End_Tag;
+ static const std::string External_Purge_Tag;
public:
enum class ETags : unsigned char
{
diff --git a/src/libslic3r/Geometry.cpp b/src/libslic3r/Geometry.cpp
index 49e50a671d..3e67d4e1ba 100644
--- a/src/libslic3r/Geometry.cpp
+++ b/src/libslic3r/Geometry.cpp
@@ -717,53 +717,6 @@ Transformation Transformation::volume_to_bed_transformation(const Transformation
return out;
}
-TransformationSVD::TransformationSVD(const Transform3d& trafo)
-{
- const auto &m0 = trafo.matrix().block<3, 3>(0, 0);
- mirror = m0.determinant() < 0.0;
-
- Matrix3d m;
- if (mirror)
- m = m0 * Eigen::DiagonalMatrix(-1.0, 1.0, 1.0);
- else
- m = m0;
- const Eigen::JacobiSVD svd(m, Eigen::ComputeFullU | Eigen::ComputeFullV);
- u = svd.matrixU();
- v = svd.matrixV();
- s = svd.singularValues().asDiagonal();
-
- scale = !s.isApprox(Matrix3d::Identity());
- anisotropic_scale = ! is_approx(s(0, 0), s(1, 1)) || ! is_approx(s(1, 1), s(2, 2));
- rotation = !v.isApprox(u);
-
- if (anisotropic_scale) {
- rotation_90_degrees = true;
- for (int i = 0; i < 3; ++i) {
- const Vec3d row = v.row(i).cwiseAbs();
- const size_t num_zeros = is_approx(row[0], 0.) + is_approx(row[1], 0.) + is_approx(row[2], 0.);
- const size_t num_ones = is_approx(row[0], 1.) + is_approx(row[1], 1.) + is_approx(row[2], 1.);
- if (num_zeros != 2 || num_ones != 1) {
- rotation_90_degrees = false;
- break;
- }
- }
- // Detect skew by brute force: check if the axes are still orthogonal after transformation
- const Matrix3d trafo_linear = trafo.linear();
- const std::array axes = { Vec3d::UnitX(), Vec3d::UnitY(), Vec3d::UnitZ() };
- std::array transformed_axes;
- for (int i = 0; i < 3; ++i) {
- transformed_axes[i] = trafo_linear * axes[i];
- }
- skew = std::abs(transformed_axes[0].dot(transformed_axes[1])) > EPSILON ||
- std::abs(transformed_axes[1].dot(transformed_axes[2])) > EPSILON ||
- std::abs(transformed_axes[2].dot(transformed_axes[0])) > EPSILON;
-
- // This following old code does not work under all conditions. The v matrix can become non diagonal (see SPE-1492)
-// skew = ! rotation_90_degrees;
- } else
- skew = false;
-}
-
// For parsing a transformation matrix from 3MF / AMF.
Transform3d transform3d_from_string(const std::string& transform_str)
{
@@ -812,4 +765,78 @@ double rotation_diff_z(const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to)
return (axis.z() < 0) ? -angle : angle;
}
+TransformationSVD::TransformationSVD(const Transform3d& trafo)
+{
+ const auto &m0 = trafo.matrix().block<3, 3>(0, 0);
+ mirror = m0.determinant() < 0.0;
+
+ Matrix3d m;
+ if (mirror)
+ m = m0 * Eigen::DiagonalMatrix(-1.0, 1.0, 1.0);
+ else
+ m = m0;
+ const Eigen::JacobiSVD svd(m, Eigen::ComputeFullU | Eigen::ComputeFullV);
+ u = svd.matrixU();
+ v = svd.matrixV();
+ s = svd.singularValues().asDiagonal();
+
+ scale = !s.isApprox(Matrix3d::Identity());
+ anisotropic_scale = ! is_approx(s(0, 0), s(1, 1)) || ! is_approx(s(1, 1), s(2, 2));
+ rotation = !v.isApprox(u);
+
+ if (anisotropic_scale) {
+ rotation_90_degrees = true;
+ for (int i = 0; i < 3; ++i) {
+ const Vec3d row = v.row(i).cwiseAbs();
+ const size_t num_zeros = is_approx(row[0], 0.) + is_approx(row[1], 0.) + is_approx(row[2], 0.);
+ const size_t num_ones = is_approx(row[0], 1.) + is_approx(row[1], 1.) + is_approx(row[2], 1.);
+ if (num_zeros != 2 || num_ones != 1) {
+ rotation_90_degrees = false;
+ break;
+ }
+ }
+ // Detect skew by brute force: check if the axes are still orthogonal after transformation
+ const Matrix3d trafo_linear = trafo.linear();
+ const std::array axes = { Vec3d::UnitX(), Vec3d::UnitY(), Vec3d::UnitZ() };
+ std::array transformed_axes;
+ for (int i = 0; i < 3; ++i) {
+ transformed_axes[i] = trafo_linear * axes[i];
+ }
+ skew = std::abs(transformed_axes[0].dot(transformed_axes[1])) > EPSILON ||
+ std::abs(transformed_axes[1].dot(transformed_axes[2])) > EPSILON ||
+ std::abs(transformed_axes[2].dot(transformed_axes[0])) > EPSILON;
+
+ // This following old code does not work under all conditions. The v matrix can become non diagonal (see SPE-1492)
+// skew = ! rotation_90_degrees;
+ } else
+ skew = false;
+}
+
+ Transformation mat_around_a_point_rotate(const Transformation &InMat, const Vec3d &pt, const Vec3d &axis, float rotate_theta_radian)
+{
+ auto xyz = InMat.get_offset();
+ Transformation left;
+ left.set_offset(-xyz); // at world origin
+ auto curMat = left * InMat;
+
+ auto qua = Eigen::Quaterniond(Eigen::AngleAxisd(rotate_theta_radian, axis));
+ qua.normalize();
+ Transform3d cur_matrix;
+ Transformation rotateMat4;
+ rotateMat4.set_matrix(cur_matrix.fromPositionOrientationScale(Vec3d(0., 0., 0.), qua, Vec3d(1., 1., 1.)));
+
+ curMat = rotateMat4 * curMat; // along_fix_axis
+ // rotate mat4 along fix pt
+ Transformation temp_world;
+ auto qua_world = Eigen::Quaterniond(Eigen::AngleAxisd(0, axis));
+ qua_world.normalize();
+ Transform3d cur_matrix_world;
+ temp_world.set_matrix(cur_matrix_world.fromPositionOrientationScale(pt, qua_world, Vec3d(1., 1., 1.)));
+ auto temp_xyz = temp_world.get_matrix().inverse() * xyz;
+ auto new_pos = temp_world.get_matrix() * (rotateMat4.get_matrix() * temp_xyz);
+ curMat.set_offset(new_pos);
+
+ return curMat;
+}
+
}} // namespace Slic3r::Geometry
diff --git a/src/libslic3r/Geometry.hpp b/src/libslic3r/Geometry.hpp
index 2b027a231a..8183dcb7e8 100644
--- a/src/libslic3r/Geometry.hpp
+++ b/src/libslic3r/Geometry.hpp
@@ -10,7 +10,7 @@
// Serialization through the Cereal library
#include
-namespace Slic3r {
+namespace Slic3r {
namespace ClipperLib {
class PolyNode;
@@ -544,6 +544,7 @@ inline bool is_rotation_ninety_degrees(const Vec3d &rotation)
return is_rotation_ninety_degrees(rotation.x()) && is_rotation_ninety_degrees(rotation.y()) && is_rotation_ninety_degrees(rotation.z());
}
+Transformation mat_around_a_point_rotate(const Transformation& innMat, const Vec3d &pt, const Vec3d &axis, float rotate_theta_radian);
} } // namespace Slicer::Geometry
#endif
diff --git a/src/libslic3r/Geometry/Voronoi.cpp b/src/libslic3r/Geometry/Voronoi.cpp
index 58923b9ada..947c56a707 100644
--- a/src/libslic3r/Geometry/Voronoi.cpp
+++ b/src/libslic3r/Geometry/Voronoi.cpp
@@ -163,12 +163,10 @@ VoronoiDiagram::detect_known_issues(const VoronoiDiagram &voronoi_diagram, Segme
return IssueType::FINITE_EDGE_WITH_NON_FINITE_VERTEX;
} else if (const IssueType cell_issue_type = detect_known_voronoi_cell_issues(voronoi_diagram, segment_begin, segment_end); cell_issue_type != IssueType::NO_ISSUE_DETECTED) {
return cell_issue_type;
+ } else if (!VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(voronoi_diagram, segment_begin, segment_end)) {
+ // Detection of non-planar Voronoi diagram detects at least GH issues #8474, #8514 and #8446.
+ return IssueType::NON_PLANAR_VORONOI_DIAGRAM;
}
- // BBS: test no problem in BBS
- //} else if (!VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(voronoi_diagram, segment_begin, segment_end)) {
- // // Detection of non-planar Voronoi diagram detects at least GH issues #8474, #8514 and #8446.
- // return IssueType::NON_PLANAR_VORONOI_DIAGRAM;
- //}
return IssueType::NO_ISSUE_DETECTED;
}
diff --git a/src/libslic3r/Measure.cpp b/src/libslic3r/Measure.cpp
index c6f1276e83..0100c1574e 100644
--- a/src/libslic3r/Measure.cpp
+++ b/src/libslic3r/Measure.cpp
@@ -13,7 +13,27 @@
namespace Slic3r {
namespace Measure {
+bool get_point_projection_to_plane(const Vec3d &pt, const Vec3d &plane_origin, const Vec3d &plane_normal, Vec3d &intersection_pt)
+{
+ auto normal = plane_normal.normalized();
+ auto BA = plane_origin - pt;
+ auto length = BA.dot(normal);
+ intersection_pt = pt + length * normal;
+ return true;
+}
+Vec3d get_one_point_in_plane(const Vec3d &plane_origin, const Vec3d &plane_normal)
+{
+ Vec3d dir(1, 0, 0);
+ float eps = 1e-3;
+ if (abs(plane_normal.dot(dir)) > 1 - eps) {
+ dir = Vec3d(0, 1, 0);
+ }
+ auto new_pt = plane_origin + dir;
+ Vec3d retult;
+ get_point_projection_to_plane(new_pt, plane_origin, plane_normal, retult);
+ return retult;
+}
constexpr double feature_hover_limit = 0.5; // how close to a feature the mouse must be to highlight it
@@ -33,7 +53,7 @@ static std::tuple get_center_and_radius(const std::vector
double error = std::numeric_limits::max();
auto circle = Geometry::circle_ransac(out, iter, &error);
-
+
return std::make_tuple(trafo.inverse() * Vec3d(circle.center.x(), circle.center.y(), z), circle.radius, error);
}
@@ -69,16 +89,18 @@ public:
bool features_extracted = false;
};
- std::optional get_feature(size_t face_idx, const Vec3d& point);
+ std::optional get_feature(size_t face_idx, const Vec3d &point, const Transform3d &world_tran,bool only_select_plane);
int get_num_of_planes() const;
const std::vector& get_plane_triangle_indices(int idx) const;
+ std::vector* get_plane_tri_indices(int idx);
const std::vector& get_plane_features(unsigned int plane_id);
+ std::vector* get_plane_features_pointer(unsigned int plane_id);
const indexed_triangle_set& get_its() const;
private:
void update_planes();
void extract_features(int plane_idx);
-
+
std::vector m_planes;
std::vector m_face_to_plane;
indexed_triangle_set m_its;
@@ -158,7 +180,7 @@ void MeasuringImpl::update_planes()
m_planes.back().normal = normal_ptr->cast();
std::sort(m_planes.back().facets.begin(), m_planes.back().facets.end());
}
-
+
// Check that each facet is part of one of the planes.
assert(std::none_of(m_face_to_plane.begin(), m_face_to_plane.end(), [](size_t val) { return val == size_t(-1); }));
@@ -175,7 +197,7 @@ void MeasuringImpl::update_planes()
const auto& facets = planes[plane_id].facets;
planes[plane_id].borders.clear();
std::vector> visited(facets.size(), {false, false, false});
-
+
for (int face_id=0; face_id());
//Vertex_index target = sm.target(he);
const Halfedge_index he_start = he;
-
+
Face_index fi = he.face();
auto face_it = std::lower_bound(facets.begin(), facets.end(), int(fi));
assert(face_it != facets.end());
@@ -228,7 +250,7 @@ void MeasuringImpl::update_planes()
he = sm.opposite(he);
if (he.is_invalid())
goto PLANE_FAILURE;
-
+
Face_index fi = he.face();
auto face_it = std::lower_bound(facets.begin(), facets.end(), int(fi));
if (face_it == facets.end() || *face_it != int(fi)) // This indicates a broken mesh.
@@ -265,11 +287,6 @@ void MeasuringImpl::update_planes()
m_planes.shrink_to_fit();
}
-
-
-
-
-
void MeasuringImpl::extract_features(int plane_idx)
{
assert(! m_planes[plane_idx].features_extracted);
@@ -490,7 +507,7 @@ void MeasuringImpl::extract_features(int plane_idx)
Vec3d cog = Vec3d::Zero();
size_t counter = 0;
for (const std::vector& b : plane.borders) {
- for (size_t i = 1; i < b.size(); ++i) {
+ for (size_t i = 0; i < b.size(); ++i) {
cog += b[i];
++counter;
}
@@ -505,14 +522,7 @@ void MeasuringImpl::extract_features(int plane_idx)
plane.features_extracted = true;
}
-
-
-
-
-
-
-
-std::optional MeasuringImpl::get_feature(size_t face_idx, const Vec3d& point)
+std::optional MeasuringImpl::get_feature(size_t face_idx, const Vec3d &point, const Transform3d &world_tran,bool only_select_plane)
{
if (face_idx >= m_face_to_plane.size())
return std::optional();
@@ -521,7 +531,7 @@ std::optional MeasuringImpl::get_feature(size_t face_idx, const
if (! plane.features_extracted)
extract_features(m_face_to_plane[face_idx]);
-
+
size_t closest_feature_idx = size_t(-1);
double min_dist = std::numeric_limits::max();
@@ -530,40 +540,57 @@ std::optional MeasuringImpl::get_feature(size_t face_idx, const
assert(plane.surface_features.empty() || plane.surface_features.back().get_type() == SurfaceFeatureType::Plane);
- for (size_t i=0; idist;
- if (dist < feature_hover_limit && dist < min_dist) {
- min_dist = std::min(dist, min_dist);
- closest_feature_idx = i;
+ if (!only_select_plane) {
+ for (size_t i = 0; i < plane.surface_features.size() - 1; ++i) {
+ // The -1 is there to prevent measuring distance to the plane itself,
+ // which is needless and relatively expensive.
+ res = get_measurement(plane.surface_features[i], point_sf);
+ if (res.distance_strict) { // TODO: this should become an assert after all combinations are implemented.
+ double dist = res.distance_strict->dist;
+ if (dist < feature_hover_limit && dist < min_dist) {
+ min_dist = std::min(dist, min_dist);
+ closest_feature_idx = i;
+ }
}
}
- }
- if (closest_feature_idx != size_t(-1)) {
- const SurfaceFeature& f = plane.surface_features[closest_feature_idx];
- if (f.get_type() == SurfaceFeatureType::Edge) {
- // If this is an edge, check if we are not close to the endpoint. If so,
- // we will include the endpoint as well. Close = 10% of the lenghth of
- // the edge, clamped between 0.025 and 0.5 mm.
- const auto& [sp, ep] = f.get_edge();
- double len_sq = (ep-sp).squaredNorm();
- double limit_sq = std::max(0.025*0.025, std::min(0.5*0.5, 0.1 * 0.1 * len_sq));
+ if (closest_feature_idx != size_t(-1)) {
+ const SurfaceFeature &f = plane.surface_features[closest_feature_idx];
+ if (f.get_type() == SurfaceFeatureType::Edge) {
+ // If this is an edge, check if we are not close to the endpoint. If so,
+ // we will include the endpoint as well. Close = 10% of the lenghth of
+ // the edge, clamped between 0.025 and 0.5 mm.
+ const auto &[sp, ep] = f.get_edge();
+ double len_sq = (ep - sp).squaredNorm();
+ double limit_sq = std::max(0.025 * 0.025, std::min(0.5 * 0.5, 0.1 * 0.1 * len_sq));
+ if ((point - sp).squaredNorm() < limit_sq) {
+ SurfaceFeature local_f(sp);
+ local_f.origin_surface_feature = std::make_shared(local_f);
+ local_f.translate(world_tran);
+ return std::make_optional(local_f);
+ }
- if ((point-sp).squaredNorm() < limit_sq)
- return std::make_optional(SurfaceFeature(sp));
- if ((point-ep).squaredNorm() < limit_sq)
- return std::make_optional(SurfaceFeature(ep));
+ if ((point - ep).squaredNorm() < limit_sq) {
+ SurfaceFeature local_f(ep);
+ local_f.origin_surface_feature = std::make_shared(local_f);
+ local_f.translate(world_tran);
+ return std::make_optional(local_f);
+ }
+ }
+ SurfaceFeature f_tran(f);
+ f_tran.origin_surface_feature = std::make_shared(f);
+ f_tran.translate(world_tran);
+ return std::make_optional(f_tran);
}
- return std::make_optional(f);
}
// Nothing detected, return the plane as a whole.
assert(plane.surface_features.back().get_type() == SurfaceFeatureType::Plane);
- return std::make_optional(plane.surface_features.back());
+ auto cur_plane = const_cast(&plane);
+ SurfaceFeature f_tran(cur_plane->surface_features.back());
+ f_tran.origin_surface_feature = std::make_shared(cur_plane->surface_features.back());
+ f_tran.translate(world_tran);
+ return std::make_optional(f_tran);
}
@@ -583,6 +610,12 @@ const std::vector& MeasuringImpl::get_plane_triangle_indices(int idx) const
return m_planes[idx].facets;
}
+std::vector* MeasuringImpl::get_plane_tri_indices(int idx)
+{
+ assert(idx >= 0 && idx < int(m_planes.size()));
+ return &m_planes[idx].facets;
+}
+
const std::vector& MeasuringImpl::get_plane_features(unsigned int plane_id)
{
assert(plane_id < m_planes.size());
@@ -591,21 +624,18 @@ const std::vector& MeasuringImpl::get_plane_features(unsigned in
return m_planes[plane_id].surface_features;
}
+std::vector* MeasuringImpl::get_plane_features_pointer(unsigned int plane_id) {
+ assert(plane_id < m_planes.size());
+ if (!m_planes[plane_id].features_extracted)
+ extract_features(plane_id);
+ return &m_planes[plane_id].surface_features;
+}
+
const indexed_triangle_set& MeasuringImpl::get_its() const
{
return this->m_its;
}
-
-
-
-
-
-
-
-
-
-
Measuring::Measuring(const indexed_triangle_set& its)
: priv{std::make_unique(its)}
{}
@@ -614,9 +644,12 @@ Measuring::~Measuring() {}
-std::optional Measuring::get_feature(size_t face_idx, const Vec3d& point) const
+std::optional Measuring::get_feature(size_t face_idx, const Vec3d &point, const Transform3d &world_tran, bool only_select_plane) const
{
- return priv->get_feature(face_idx, point);
+ if (face_idx == 7516 || face_idx == 7517) {
+ std::cout << "";
+ }
+ return priv->get_feature(face_idx, point, world_tran, only_select_plane);
}
@@ -796,13 +829,7 @@ static AngleAndEdges angle_plane_plane(const std::tuple& p1,
return ret;
}
-
-
-
-
-
-
-MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature& b, const Measuring* measuring)
+MeasurementResult get_measurement(const SurfaceFeature &a, const SurfaceFeature &b, bool deal_circle_result)
{
assert(a.get_type() != SurfaceFeatureType::Undef && b.get_type() != SurfaceFeatureType::Undef);
@@ -819,7 +846,7 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
if (f2.get_type() == SurfaceFeatureType::Point) {
Vec3d diff = (f2.get_point() - f1.get_point());
result.distance_strict = std::make_optional(DistAndPoints{diff.norm(), f1.get_point(), f2.get_point()});
- result.distance_xyz = diff.cwiseAbs();
+ result.distance_xyz = diff;
///////////////////////////////////////////////////////////////////////////
} else if (f2.get_type() == SurfaceFeatureType::Edge) {
@@ -849,13 +876,18 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
result.distance_strict = std::make_optional(DistAndPoints{ radius, c, p_on_circle });
}
else {
- const Eigen::Hyperplane circle_plane(n, c);
- const Vec3d proj = circle_plane.projection(f1.get_point());
- const double dist = std::sqrt(std::pow((proj - c).norm() - radius, 2.) +
- (f1.get_point() - proj).squaredNorm());
+ if (deal_circle_result == false) {
+ const Eigen::Hyperplane circle_plane(n, c);
+ const Vec3d proj = circle_plane.projection(f1.get_point());
+ const double dist = std::sqrt(std::pow((proj - c).norm() - radius, 2.) + (f1.get_point() - proj).squaredNorm());
- const Vec3d p_on_circle = c + radius * (proj - c).normalized();
- result.distance_strict = std::make_optional(DistAndPoints{ dist, f1.get_point(), p_on_circle }); // TODO
+ const Vec3d p_on_circle = c + radius * (proj - c).normalized();
+ result.distance_strict = std::make_optional(DistAndPoints{dist, f1.get_point(), p_on_circle});
+ }
+ else {
+ const double dist = (f1.get_point() - c).norm();
+ result.distance_strict = std::make_optional(DistAndPoints{dist, f1.get_point(), c});
+ }
}
///////////////////////////////////////////////////////////////////////////
} else if (f2.get_type() == SurfaceFeatureType::Plane) {
@@ -903,31 +935,31 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
result.angle = angle_edge_edge(f1.get_edge(), f2.get_edge());
///////////////////////////////////////////////////////////////////////////
} else if (f2.get_type() == SurfaceFeatureType::Circle) {
- const std::pair e = f1.get_edge();
- const auto& [center, radius, normal] = f2.get_circle();
- const Vec3d e1e2 = (e.second - e.first);
- const Vec3d e1e2_unit = e1e2.normalized();
+ const std::pair e = f1.get_edge();
+ const auto &[center, radius, normal] = f2.get_circle();
+ const Vec3d e1e2 = (e.second - e.first);
+ const Vec3d e1e2_unit = e1e2.normalized();
std::vector distances;
distances.emplace_back(*get_measurement(SurfaceFeature(e.first), f2).distance_strict);
distances.emplace_back(*get_measurement(SurfaceFeature(e.second), f2).distance_strict);
- const Eigen::Hyperplane plane(e1e2_unit, center);
- const Eigen::ParametrizedLine line = Eigen::ParametrizedLine::Through(e.first, e.second);
- const Vec3d inter = line.intersectionPoint(plane);
- const Vec3d e1inter = inter - e.first;
- if (e1inter.dot(e1e2) >= 0.0 && e1inter.norm() < e1e2.norm())
- distances.emplace_back(*get_measurement(SurfaceFeature(inter), f2).distance_strict);
+ const Eigen::Hyperplane plane(e1e2_unit, center);
+ const Eigen::ParametrizedLine line = Eigen::ParametrizedLine::Through(e.first, e.second);
+ const Vec3d inter = line.intersectionPoint(plane);
+ const Vec3d e1inter = inter - e.first;
+ if (e1inter.dot(e1e2) >= 0.0 && e1inter.norm() < e1e2.norm()) distances.emplace_back(*get_measurement(SurfaceFeature(inter), f2).distance_strict);
- auto it = std::min_element(distances.begin(), distances.end(),
- [](const DistAndPoints& item1, const DistAndPoints& item2) {
- return item1.dist < item2.dist;
- });
- result.distance_infinite = std::make_optional(DistAndPoints{it->dist, it->from, it->to});
+ auto it = std::min_element(distances.begin(), distances.end(), [](const DistAndPoints &item1, const DistAndPoints &item2) { return item1.dist < item2.dist; });
+ if (deal_circle_result == false) {
+ result.distance_infinite = std::make_optional(DistAndPoints{it->dist, it->from, it->to});
+ }
+ else{
+ const double dist = (it->from - center).norm();
+ result.distance_infinite = std::make_optional(DistAndPoints{dist, it->from, center});
+ }
///////////////////////////////////////////////////////////////////////////
} else if (f2.get_type() == SurfaceFeatureType::Plane) {
- assert(measuring != nullptr);
-
const auto [from, to] = f1.get_edge();
const auto [idx, normal, origin] = f2.get_plane();
@@ -944,9 +976,9 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
result.distance_infinite = std::make_optional(DistAndPoints{ it->dist, it->from, it->to });
}
else {
- const std::vector& plane_features = measuring->get_plane_features(idx);
+ auto plane_features = f2.world_plane_features;
std::vector distances;
- for (const SurfaceFeature& sf : plane_features) {
+ for (const SurfaceFeature& sf : *plane_features) {
if (sf.get_type() == SurfaceFeatureType::Edge) {
const auto m = get_measurement(sf, f1);
if (!m.distance_infinite.has_value()) {
@@ -975,7 +1007,7 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
const auto [c0, r0, n0] = f1.get_circle();
const auto [c1, r1, n1] = f2.get_circle();
- // The following code is an adaptation of the algorithm found in:
+ // The following code is an adaptation of the algorithm found in:
// https://github.com/davideberly/GeometricTools/blob/master/GTE/Mathematics/DistCircle3Circle3.h
// and described in:
// https://www.geometrictools.com/Documentation/DistanceToCircle3.pdf
@@ -1120,7 +1152,7 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
}
else {
ClosestInfo& info = candidates[0];
-
+
const double N0dD = n0.dot(D);
const Vec3d normProj = N0dD * n0;
const Vec3d compProj = D - normProj;
@@ -1185,22 +1217,26 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
}
}
- info.sqrDistance = distance * distance + N0dD * N0dD;
+ info.sqrDistance = distance * distance;
+ }
+ if (deal_circle_result == false) {
+ result.distance_infinite = std::make_optional(
+ DistAndPoints{std::sqrt(candidates[0].sqrDistance), candidates[0].circle0Closest, candidates[0].circle1Closest}); // TODO
+ } else {
+ const double dist = (c0 - c1).norm();
+ result.distance_strict = std::make_optional(DistAndPoints{dist, c0, c1});
}
- result.distance_infinite = std::make_optional(DistAndPoints{ std::sqrt(candidates[0].sqrDistance), candidates[0].circle0Closest, candidates[0].circle1Closest }); // TODO
///////////////////////////////////////////////////////////////////////////
} else if (f2.get_type() == SurfaceFeatureType::Plane) {
- assert(measuring != nullptr);
-
const auto [center, radius, normal1] = f1.get_circle();
const auto [idx2, normal2, origin2] = f2.get_plane();
const bool coplanar = are_parallel(normal1, normal2) && Eigen::Hyperplane(normal1, center).absDistance(origin2) < EPSILON;
if (!coplanar) {
- const std::vector& plane_features = measuring->get_plane_features(idx2);
+ auto plane_features = f2.world_plane_features;
std::vector distances;
- for (const SurfaceFeature& sf : plane_features) {
+ for (const SurfaceFeature& sf : *plane_features) {
if (sf.get_type() == SurfaceFeatureType::Edge) {
const auto m = get_measurement(sf, f1);
if (!m.distance_infinite.has_value()) {
@@ -1218,6 +1254,13 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
});
result.distance_infinite = std::make_optional(DistAndPoints{ it->dist, it->from, it->to });
}
+ else {
+ const Eigen::Hyperplane plane(normal2, origin2);
+ result.distance_infinite = std::make_optional(DistAndPoints{plane.absDistance(center), center, plane.projection(center)});
+ }
+ }
+ else {
+ result.distance_strict = std::make_optional(DistAndPoints{0, center, origin2});
}
}
///////////////////////////////////////////////////////////////////////////
@@ -1229,23 +1272,159 @@ MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature&
if (are_parallel(normal1, normal2)) {
// The planes are parallel, calculate distance.
- const Eigen::Hyperplane plane(normal1, pt1);
- result.distance_infinite = std::make_optional(DistAndPoints{ plane.absDistance(pt2), pt2, plane.projection(pt2) }); // TODO
+ const Eigen::Hyperplane plane(normal2, pt2);
+ result.distance_infinite = std::make_optional(DistAndPoints{ plane.absDistance(pt1), pt1, plane.projection(pt1) });
}
else
result.angle = angle_plane_plane(f1.get_plane(), f2.get_plane());
}
-
+
+ if (swap) {
+ auto swap_dist_and_points = [](DistAndPoints& dp) {
+ auto back = dp.to;
+ dp.to = dp.from;
+ dp.from = back;
+ };
+ if (result.distance_infinite.has_value()) {
+ swap_dist_and_points(*result.distance_infinite);
+ }
+ if (result.distance_strict.has_value()) {
+ swap_dist_and_points(*result.distance_strict);
+ }
+ }
return result;
}
+bool can_set_xyz_distance(const SurfaceFeature &a, const SurfaceFeature &b) {
+ const bool swap = int(a.get_type()) > int(b.get_type());
+ const SurfaceFeature &f1 = swap ? b : a;
+ const SurfaceFeature &f2 = swap ? a : b;
+ if (f1.get_type() == SurfaceFeatureType::Point){
+ if (f2.get_type() == SurfaceFeatureType::Point) {
+ return true;
+ }
+ }
+ else if (f1.get_type() == SurfaceFeatureType::Circle) {
+ if (f2.get_type() == SurfaceFeatureType::Circle) {
+ return true;
+ }
+ }
+ return false;
+}
+AssemblyAction get_assembly_action(const SurfaceFeature& a, const SurfaceFeature& b)
+{
+ AssemblyAction action;
+ const SurfaceFeature &f1 = a;
+ const SurfaceFeature &f2 = b;
+ if (f1.get_type() == SurfaceFeatureType::Plane) {
+ action.can_set_feature_1_reverse_rotation = true;
+ if (f2.get_type() == SurfaceFeatureType::Plane) {
+ const auto [idx1, normal1, pt1] = f1.get_plane();
+ const auto [idx2, normal2, pt2] = f2.get_plane();
+ action.can_set_to_center_coincidence = true;
+ action.can_set_feature_2_reverse_rotation = true;
+ if (are_parallel(normal1, normal2)) {
+ action.can_set_to_parallel = false;
+ action.has_parallel_distance = true;
+ action.can_around_center_of_faces = true;
+ Vec3d proj_pt2;
+ Measure::get_point_projection_to_plane(pt2, pt1, normal1, proj_pt2);
+ action.parallel_distance = (pt2 - proj_pt2).norm();
+ if ((pt2 - proj_pt2).dot(normal1) < 0) {
+ action.parallel_distance = -action.parallel_distance;
+ }
+ action.angle_radian = 0;
+ } else {
+ action.can_set_to_parallel = true;
+ action.has_parallel_distance = false;
+ action.can_around_center_of_faces = false;
+ action.parallel_distance = 0;
+ action.angle_radian = std::acos(std::clamp(normal2.dot(-normal1), -1.0, 1.0));
+ }
+ }
+ }
+ return action;
+}
+void SurfaceFeature::translate(const Vec3d& displacement) {
+ switch (get_type()) {
+ case Measure::SurfaceFeatureType::Point: {
+ m_pt1 = m_pt1 + displacement;
+ break;
+ }
+ case Measure::SurfaceFeatureType::Edge: {
+ m_pt1 = m_pt1 + displacement;
+ m_pt2 = m_pt2 + displacement;
+ if (m_pt3.has_value()) { //extra_point()
+ m_pt3 = *m_pt3 + displacement;
+ }
+ break;
+ }
+ case Measure::SurfaceFeatureType::Plane: {
+ //m_pt1 is normal;
+ m_pt2 = m_pt2 + displacement;
+ break;
+ }
+ case Measure::SurfaceFeatureType::Circle: {
+ m_pt1 = m_pt1 + displacement;
+ // m_pt2 is normal;
+ break;
+ }
+ default: break;
+ }
+}
+void SurfaceFeature::translate(const Transform3d &tran)
+{
+ switch (get_type()) {
+ case Measure::SurfaceFeatureType::Point: {
+ m_pt1 = tran * m_pt1;
+ break;
+ }
+ case Measure::SurfaceFeatureType::Edge: {
+ m_pt1 = tran * m_pt1;
+ m_pt2 = tran * m_pt2;
+ if (m_pt3.has_value()) { // extra_point()
+ m_pt3 = tran * *m_pt3;
+ }
+ break;
+ }
+ case Measure::SurfaceFeatureType::Plane: {
+ // m_pt1 is normal;
+ Vec3d temp_pt1 = m_pt2 + m_pt1;
+ temp_pt1 = tran * temp_pt1;
+ m_pt2 = tran * m_pt2;
+ m_pt1 = (temp_pt1 - m_pt2).normalized();
+ break;
+ }
+ case Measure::SurfaceFeatureType::Circle: {
+ // m_pt1 is center;
+ // m_pt2 is normal;
+ auto local_normal = m_pt2;
+ auto local_center = m_pt1;
+ Vec3d temp_pt2 = local_normal + local_center;
+ temp_pt2 = tran * temp_pt2;
+ m_pt1 = tran * m_pt1;
+ auto world_center = m_pt1;
+ m_pt2 = (temp_pt2 - m_pt1).normalized();
-
-
-} // namespace Measure
+ auto calc_world_radius = [&local_center, &local_normal, &tran, &world_center](const Vec3d &pt, double &value) {
+ Vec3d intersection_pt;
+ get_point_projection_to_plane(pt, local_center, local_normal, intersection_pt);
+ auto local_radius_pt = (intersection_pt - local_center).normalized() * value + local_center;
+ auto radius_pt = tran * local_radius_pt;
+ value = (radius_pt - world_center).norm();
+ };
+ //m_value is radius
+ auto new_pt = get_one_point_in_plane(local_center, local_normal);
+ calc_world_radius(new_pt, m_value);
+ break;
+ }
+ default: break;
+ }
+}
+ }//namespace Measure
} // namespace Slic3r
diff --git a/src/libslic3r/Measure.hpp b/src/libslic3r/Measure.hpp
index 70f446afd9..614b443131 100644
--- a/src/libslic3r/Measure.hpp
+++ b/src/libslic3r/Measure.hpp
@@ -6,18 +6,13 @@
#include "Point.hpp"
-
struct indexed_triangle_set;
-
-
namespace Slic3r {
class TriangleMesh;
namespace Measure {
-
-
enum class SurfaceFeatureType : int {
Undef = 0,
Point = 1 << 0,
@@ -26,22 +21,44 @@ enum class SurfaceFeatureType : int {
Plane = 1 << 3
};
-class SurfaceFeature {
+bool get_point_projection_to_plane(const Vec3d &pt, const Vec3d &plane_origin, const Vec3d &plane_normal, Vec3d &intersection_pt);
+Vec3d get_one_point_in_plane(const Vec3d &plane_origin, const Vec3d &plane_normal);
+
+class SurfaceFeature
+{
public:
SurfaceFeature(SurfaceFeatureType type, const Vec3d& pt1, const Vec3d& pt2, std::optional pt3 = std::nullopt, double value = 0.0)
: m_type(type), m_pt1(pt1), m_pt2(pt2), m_pt3(pt3), m_value(value) {}
- explicit SurfaceFeature(const Vec3d& pt)
+ SurfaceFeature(const Vec3d& pt)
: m_type{SurfaceFeatureType::Point}, m_pt1{pt} {}
+ SurfaceFeature(const SurfaceFeature& sf){
+ this->clone(sf);
+ volume = sf.volume;
+ plane_indices = sf.plane_indices;
+ world_tran = sf.world_tran;
+ world_plane_features = sf.world_plane_features;
+ origin_surface_feature = sf.origin_surface_feature;
+ }
+
+ void clone(const SurfaceFeature &sf)
+ {
+ m_type = sf.get_type();
+ m_pt1 = sf.get_pt1();
+ m_pt2 = sf.get_pt2();
+ m_pt3 = sf.get_pt3();
+ m_value = sf.get_value();
+ }
+ void translate(const Vec3d& displacement);
+ void translate(const Transform3d& tran);
// Get type of this feature.
SurfaceFeatureType get_type() const { return m_type; }
// For points, return the point.
Vec3d get_point() const { assert(m_type == SurfaceFeatureType::Point); return m_pt1; }
-
// For edges, return start and end.
- std::pair get_edge() const { assert(m_type == SurfaceFeatureType::Edge); return std::make_pair(m_pt1, m_pt2); }
+ std::pair get_edge() const { assert(m_type == SurfaceFeatureType::Edge); return std::make_pair(m_pt1, m_pt2); }
// For circles, return center, radius and normal.
std::tuple get_circle() const { assert(m_type == SurfaceFeatureType::Circle); return std::make_tuple(m_pt1, m_value, m_pt2); }
@@ -75,6 +92,17 @@ public:
return !operator == (other);
}
+ void* volume{nullptr};
+ std::vector* plane_indices{nullptr};
+ Transform3d world_tran;
+ std::shared_ptr> world_plane_features{nullptr};
+ std::shared_ptr origin_surface_feature{nullptr};
+
+ Vec3d get_pt1() const{ return m_pt1; }
+ Vec3d get_pt2() const { return m_pt2; }
+ const std::optional& get_pt3() const { return m_pt3; }
+ double get_value() const { return m_value; }
+
private:
SurfaceFeatureType m_type{ SurfaceFeatureType::Undef };
Vec3d m_pt1{ Vec3d::Zero() };
@@ -97,7 +125,7 @@ public:
// Given a face_idx where the mouse cursor points, return a feature that
// should be highlighted (if any).
- std::optional get_feature(size_t face_idx, const Vec3d& point) const;
+ std::optional get_feature(size_t face_idx, const Vec3d& point, const Transform3d & world_tran,bool only_select_plane) const;
// Return total number of planes.
int get_num_of_planes() const;
@@ -111,7 +139,7 @@ public:
// Returns the mesh used for measuring
const indexed_triangle_set& get_its() const;
-private:
+private:
std::unique_ptr priv;
};
@@ -152,7 +180,24 @@ struct MeasurementResult {
};
// Returns distance/angle between two SurfaceFeatures.
-MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature& b, const Measuring* measuring = nullptr);
+MeasurementResult get_measurement(const SurfaceFeature& a, const SurfaceFeature& b,bool deal_circle_result =false);
+bool can_set_xyz_distance(const SurfaceFeature &a, const SurfaceFeature &b);
+
+struct AssemblyAction
+{
+ bool can_set_to_parallel{false};
+ bool can_set_to_center_coincidence{false};
+ bool can_set_feature_1_reverse_rotation{false};
+ bool can_set_feature_2_reverse_rotation{false};
+ bool can_around_center_of_faces{false};
+ bool has_parallel_distance{false};
+ float parallel_distance;
+ float angle_radian{0};
+ Transform3d tran_for_parallel;
+ Transform3d tran_for_center_coincidence;
+ Transform3d tran_for_reverse_rotation;
+};
+AssemblyAction get_assembly_action(const SurfaceFeature &a, const SurfaceFeature &b);
inline Vec3d edge_direction(const Vec3d& from, const Vec3d& to) { return (to - from).normalized(); }
inline Vec3d edge_direction(const std::pair& e) { return edge_direction(e.first, e.second); }
diff --git a/src/libslic3r/MeasureUtils.hpp b/src/libslic3r/MeasureUtils.hpp
index 0ab4ac121d..2fdac52443 100644
--- a/src/libslic3r/MeasureUtils.hpp
+++ b/src/libslic3r/MeasureUtils.hpp
@@ -7,7 +7,7 @@ namespace Slic3r {
namespace Measure {
// Utility class used to calculate distance circle-circle
-// Adaptation of code found in:
+// Adaptation of code found in:
// https://github.com/davideberly/GeometricTools/blob/master/GTE/Mathematics/Polynomial1.h
class Polynomial1
@@ -174,7 +174,7 @@ inline Polynomial1 operator * (double scalar, const Polynomial1& p)
}
// Utility class used to calculate distance circle-circle
-// Adaptation of code found in:
+// Adaptation of code found in:
// https://github.com/davideberly/GeometricTools/blob/master/GTE/Mathematics/RootsPolynomial.h
class RootsPolynomial
@@ -242,7 +242,7 @@ public:
return false;
if (tmin >= tmax)
- // Invalid ordering of interval endpoitns.
+ // Invalid ordering of interval endpoitns.
return false;
for (uint32_t i = 1; i <= maxIterations; ++i) {
@@ -345,7 +345,7 @@ public:
}
};
-// Adaptation of code found in:
+// Adaptation of code found in:
// https://github.com/davideberly/GeometricTools/blob/master/GTE/Mathematics/Vector.h
// Construct a single vector orthogonal to the nonzero input vector. If
diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp
index fe8ff61018..9a6a5718ba 100644
--- a/src/libslic3r/Model.cpp
+++ b/src/libslic3r/Model.cpp
@@ -2785,7 +2785,6 @@ std::vector ModelVolume::get_extruders_from_multi_material_painting() co
if (!this->is_mm_painted())
return {};
- assert(static_cast(TriangleStateType::Extruder1) - 1 == 0);
const TriangleSelector::TriangleSplittingData &data = this->mmu_segmentation_facets.get_data();
std::vector extruders;
diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp
index e5878bdfac..624a710902 100644
--- a/src/libslic3r/PerimeterGenerator.cpp
+++ b/src/libslic3r/PerimeterGenerator.cpp
@@ -1222,6 +1222,17 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p
smooth_overhang_level(paths);
}
+ if (overhangs_reverse) {
+ for (const ExtrusionPath& path : paths) {
+ if (path.role() == erOverhangPerimeter) {
+ if (pg_extrusion.is_contour)
+ steep_overhang_contour = true;
+ else
+ steep_overhang_hole = true;
+ break;
+ }
+ }
+ }
}
}
else {
@@ -3168,7 +3179,7 @@ void PerimeterGenerator::process_arachne()
// printf("Layer ID %d, Outer index %d, inner index %d, second inner index %d, maximum internal perimeter %d \n",layer_id,outer,first_internal,second_internal, max_internal);
if (outer > -1 && first_internal > -1 && second_internal > -1) { // found all three perimeters to re-order? If not the perimeters will be processed outside in.
std::vector inner_outer_extrusions; // temporary array to hold extrusions for reordering
- inner_outer_extrusions.reserve(max_internal - position + 1); // reserve array containing the number of perimeters before a new island. Variables are array indexes hence need to add +1 to convert to position allocations
+ inner_outer_extrusions.resize(max_internal - position + 1); // reserve array containing the number of perimeters before a new island. Variables are array indexes hence need to add +1 to convert to position allocations
// printf("Allocated array size %d, max_internal index %d, start position index %d \n",max_internal-position+1,max_internal,position);
for (arr_j = max_internal; arr_j >=position; --arr_j){ // go inside out towards the external perimeter (perimeters in reverse order) and store all internal perimeters until the first one identified with inset index 2
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index 07107f31a0..63d2a8c7e4 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -823,7 +823,7 @@ static std::vector s_Preset_filament_options {
"filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower",
"nozzle_temperature", "nozzle_temperature_initial_layer",
// BBS
- "cool_plate_temp", "textured_cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "textured_cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer","textured_plate_temp_initial_layer",
+ "cool_plate_temp", "textured_cool_plate_temp", "eng_plate_temp", "hot_plate_temp", "textured_plate_temp", "cool_plate_temp_initial_layer", "textured_cool_plate_temp_initial_layer", "eng_plate_temp_initial_layer", "hot_plate_temp_initial_layer", "textured_plate_temp_initial_layer", "supertack_plate_temp_initial_layer", "supertack_plate_temp",
// "bed_type",
//BBS:temperature_vitrification
"temperature_vitrification", "reduce_fan_stop_start_freq","dont_slow_down_outer_wall", "slow_down_for_layer_cooling", "fan_min_speed",
diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp
index 1c7d0761bc..68b9e5a689 100644
--- a/src/libslic3r/PresetBundle.cpp
+++ b/src/libslic3r/PresetBundle.cpp
@@ -1851,6 +1851,26 @@ void PresetBundle::export_selections(AppConfig &config)
}
// BBS
+void PresetBundle::set_num_filaments(unsigned int n, std::vector new_colors) {
+ int old_filament_count = this->filament_presets.size();
+ if (n > old_filament_count && old_filament_count != 0)
+ filament_presets.resize(n, filament_presets.back());
+ else {
+ filament_presets.resize(n);
+ }
+ ConfigOptionStrings* filament_color = project_config.option("filament_colour");
+ filament_color->resize(n);
+ ams_multi_color_filment.resize(n);
+ // BBS set new filament color to new_color
+ if (old_filament_count < n) {
+ if (!new_colors.empty()) {
+ for (int i = old_filament_count; i < n; i++) {
+ filament_color->values[i] = new_colors[i - old_filament_count];
+ }
+ }
+ }
+ update_multi_material_filament_presets();
+}
void PresetBundle::set_num_filaments(unsigned int n, std::string new_color)
{
int old_filament_count = this->filament_presets.size();
diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp
index 976e654074..2937937920 100644
--- a/src/libslic3r/PresetBundle.hpp
+++ b/src/libslic3r/PresetBundle.hpp
@@ -111,6 +111,7 @@ public:
void export_selections(AppConfig &config);
// BBS
+ void set_num_filaments(unsigned int n, std::vector new_colors);
void set_num_filaments(unsigned int n, std::string new_col = "");
unsigned int sync_ams_list(unsigned int & unknowns);
//BBS: check whether this is the only edited filament
diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
index 5b6eb5d882..1fa62d7852 100644
--- a/src/libslic3r/Print.cpp
+++ b/src/libslic3r/Print.cpp
@@ -130,6 +130,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"sparse_infill_acceleration",
"internal_solid_infill_acceleration",
// BBS
+ "supertack_plate_temp_initial_layer",
"cool_plate_temp_initial_layer",
"textured_cool_plate_temp_initial_layer",
"eng_plate_temp_initial_layer",
@@ -149,6 +150,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"retraction_minimum_travel",
"retract_before_wipe",
"retract_when_changing_layer",
+ "retract_on_top_layer",
"retraction_length",
"retract_length_toolchange",
"z_hop",
@@ -270,6 +272,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "gcode_flavor"
|| opt_key == "single_extruder_multi_material"
|| opt_key == "nozzle_temperature"
+ // BBS
+ || opt_key == "supertack_plate_temp"
|| opt_key == "cool_plate_temp"
|| opt_key == "textured_cool_plate_temp"
|| opt_key == "eng_plate_temp"
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 4f816d8ca4..42e31db3bd 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -350,6 +350,7 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(OverhangFanThreshold)
// BBS
static const t_config_enum_values s_keys_map_BedType = {
{ "Default Plate", btDefault },
+ { "Supertack Plate", btSuperTack },
{ "Cool Plate", btPC },
{ "Engineering Plate", btEP },
{ "High Temp Plate", btPEI },
@@ -673,6 +674,16 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloatOrPercent(0., false));
// BBS
+ def = this->add("supertack_plate_temp", coInts);
+ def->label = L("Other layers");
+ def->tooltip = L("Bed temperature for layers except the initial one. "
+ "Value 0 means the filament does not support to print on the Cool Plate");
+ def->sidetext = "°C";
+ def->full_label = L("Bed temperature");
+ def->min = 0;
+ def->max = 120;
+ def->set_default_value(new ConfigOptionInts{35});
+
def = this->add("cool_plate_temp", coInts);
def->label = L("Other layers");
def->tooltip = L("Bed temperature for layers except the initial one. "
@@ -723,6 +734,16 @@ void PrintConfigDef::init_fff_params()
def->max = 300;
def->set_default_value(new ConfigOptionInts{45});
+ def = this->add("supertack_plate_temp_initial_layer", coInts);
+ def->label = L("Initial layer");
+ def->full_label = L("Initial layer bed temperature");
+ def->tooltip = L("Bed temperature of the initial layer. "
+ "Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack");
+ def->sidetext = "°C";
+ def->min = 0;
+ def->max = 120;
+ def->set_default_value(new ConfigOptionInts{ 35 });
+
def = this->add("cool_plate_temp_initial_layer", coInts);
def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature");
@@ -778,12 +799,14 @@ void PrintConfigDef::init_fff_params()
def->mode = comSimple;
def->enum_keys_map = &s_keys_map_BedType;
// Orca: make sure the order of the values is the same as the BedType enum
+ def->enum_values.emplace_back("Supertack Plate");
def->enum_values.emplace_back("Cool Plate");
def->enum_values.emplace_back("Engineering Plate");
def->enum_values.emplace_back("High Temp Plate");
def->enum_values.emplace_back("Textured PEI Plate");
def->enum_values.emplace_back("Textured Cool Plate");
- def->enum_labels.emplace_back(L("Smooth Cool Plate"));
+ def->enum_labels.emplace_back(L("Bambu Cool Plate SuperTack"));
+ def->enum_labels.emplace_back(L("Smooth Cool Plate / PLA Plate"));
def->enum_labels.emplace_back(L("Engineering Plate"));
def->enum_labels.emplace_back(L("Smooth High Temp Plate"));
def->enum_labels.emplace_back(L("Textured PEI Plate"));
@@ -3744,6 +3767,12 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBools { false });
+ def = this->add("retract_on_top_layer", coBools);
+ def->label = L("Retract on top layer");
+ def->tooltip = L("Force a retraction on top layer. Disabling could prevent clog on very slow patterns with small movements, like Hilbert curve");
+ def->mode = comAdvanced;
+ def->set_default_value(new ConfigOptionBools { true });
+
def = this->add("retraction_length", coFloats);
def->label = L("Length");
def->full_label = L("Retraction Length");
@@ -3784,7 +3813,7 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionFloats { 10. });
def = this->add("z_hop", coFloats);
- def->label = L("Z hop when retract");
+ def->label = L("Z-hop height");
def->tooltip = L("Whenever the retraction is done, the nozzle is lifted a little to create clearance between nozzle and the print. "
"It prevents nozzle from hitting the print when travel move. "
"Using spiral line to lift z can prevent stringing");
@@ -3812,7 +3841,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("z_hop_types", coEnums);
- def->label = L("Z hop type");
+ def->label = L("Z-hop type");
def->tooltip = L("Z hop type");
def->enum_keys_map = &ConfigOptionEnum::get_enum_values();
def->enum_values.push_back("Auto Lift");
@@ -5404,7 +5433,7 @@ void PrintConfigDef::init_fff_params()
// BBS: floats
"wipe_distance",
// bools
- "retract_when_changing_layer", "wipe",
+ "retract_when_changing_layer", "retract_on_top_layer", "wipe",
// percents
"retract_before_wipe",
"long_retractions_when_cut",
@@ -5456,7 +5485,7 @@ void PrintConfigDef::init_extruder_option_keys()
"nozzle_diameter", "min_layer_height", "max_layer_height", "extruder_offset",
"retraction_length", "z_hop", "z_hop_types", "travel_slope", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
- "retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour",
+ "retract_when_changing_layer", "retract_on_top_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "extruder_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"
};
@@ -5467,6 +5496,7 @@ void PrintConfigDef::init_extruder_option_keys()
"retract_lift_above",
"retract_lift_below",
"retract_lift_enforce",
+ "retract_on_top_layer",
"retract_restart_extra",
"retract_when_changing_layer",
"retraction_distances_when_cut",
@@ -5488,7 +5518,7 @@ void PrintConfigDef::init_filament_option_keys()
"filament_diameter", "min_layer_height", "max_layer_height",
"retraction_length", "z_hop", "z_hop_types", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retraction_speed", "deretraction_speed",
"retract_before_wipe", "retract_restart_extra", "retraction_minimum_travel", "wipe", "wipe_distance",
- "retract_when_changing_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "filament_colour",
+ "retract_when_changing_layer", "retract_on_top_layer", "retract_length_toolchange", "retract_restart_extra_toolchange", "filament_colour",
"default_filament_profile","retraction_distances_when_cut","long_retractions_when_cut"/*,"filament_seam_gap"*/
};
@@ -5501,6 +5531,7 @@ void PrintConfigDef::init_filament_option_keys()
"retract_lift_enforce",
"retract_restart_extra",
"retract_when_changing_layer",
+ "retract_on_top_layer",
"retraction_distances_when_cut",
"retraction_length",
"retraction_minimum_travel",
diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp
index a6476c3817..4a21f40245 100644
--- a/src/libslic3r/PrintConfig.hpp
+++ b/src/libslic3r/PrintConfig.hpp
@@ -254,6 +254,7 @@ enum OverhangFanThreshold {
// BBS
enum BedType {
btDefault = 0,
+ btSuperTack,
btPC,
btEP,
btPEI,
@@ -322,6 +323,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
std::string type_str;
switch (type) {
+ case btSuperTack:
+ type_str = "supertack_plate";
+ break;
case btPC:
type_str = "cool_plate";
break;
@@ -347,6 +351,9 @@ static std::string bed_type_to_gcode_string(const BedType type)
static std::string get_bed_temp_key(const BedType type)
{
+ if (type == btSuperTack)
+ return "supertack_plate_temp";
+
if (type == btPC)
return "cool_plate_temp";
@@ -367,6 +374,9 @@ static std::string get_bed_temp_key(const BedType type)
static std::string get_bed_temp_1st_layer_key(const BedType type)
{
+ if (type == btSuperTack)
+ return "supertack_plate_temp_initial_layer";
+
if (type == btPC)
return "cool_plate_temp_initial_layer";
@@ -1187,9 +1197,11 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionEnum, curr_bed_type))
((ConfigOptionInts, cool_plate_temp))
((ConfigOptionInts, textured_cool_plate_temp))
+ ((ConfigOptionInts, supertack_plate_temp))
((ConfigOptionInts, eng_plate_temp))
((ConfigOptionInts, hot_plate_temp)) // hot is short for high temperature
((ConfigOptionInts, textured_plate_temp))
+ ((ConfigOptionInts, supertack_plate_temp_initial_layer))
((ConfigOptionInts, cool_plate_temp_initial_layer))
((ConfigOptionInts, textured_cool_plate_temp_initial_layer))
((ConfigOptionInts, eng_plate_temp_initial_layer))
@@ -1243,6 +1255,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionFloat, resolution))
((ConfigOptionFloats, retraction_minimum_travel))
((ConfigOptionBools, retract_when_changing_layer))
+ ((ConfigOptionBools, retract_on_top_layer))
((ConfigOptionFloat, skirt_distance))
((ConfigOptionInt, skirt_height))
((ConfigOptionInt, skirt_loops))
diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp
index 528a72e708..01d7e242c9 100644
--- a/src/libslic3r/PrintObject.cpp
+++ b/src/libslic3r/PrintObject.cpp
@@ -31,6 +31,7 @@
#include
#include
+#include
#include
@@ -2512,7 +2513,10 @@ void PrintObject::bridge_over_infill()
[](const Line &s) { return s.a == s.b; }),
polygon_sections[i].end());
std::sort(polygon_sections[i].begin(), polygon_sections[i].end(),
- [](const Line &a, const Line &b) { return a.a.y() < b.b.y(); });
+ [](const Line &a, const Line &b) {
+ if (a == b) return false; // Ensure irreflexivity
+ return a.a.y() < b.b.y();
+ });
}
// reconstruct polygon from polygon sections
diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp
index 8c9c3c6af5..d8fdbe43fc 100644
--- a/src/libslic3r/PrintObjectSlice.cpp
+++ b/src/libslic3r/PrintObjectSlice.cpp
@@ -1259,14 +1259,15 @@ void PrintObject::apply_conical_overhang() {
auto upper_poly = upper_layer->merged(float(SCALED_EPSILON));
upper_poly = union_ex(upper_poly);
+ // Merge layer for the same reason
+ auto current_poly = layer->merged(float(SCALED_EPSILON));
+ current_poly = union_ex(current_poly);
+
// Avoid closing up of recessed holes in the base of a model.
// Detects when a hole is completely covered by the layer above and removes the hole from the layer above before
// adding it in.
// This should have no effect any time a hole in a layer interacts with any polygon in the layer above
if (scaled_max_hole_area > 0.0) {
- // Merge layer for the same reason
- auto current_poly = layer->merged(float(SCALED_EPSILON));
- current_poly = union_ex(current_poly);
// Now go through all the holes in the current layer and check if they intersect anything in the layer above
// If not, then they're the top of a hole and should be cut from the layer above before the union
@@ -1301,10 +1302,25 @@ void PrintObject::apply_conical_overhang() {
}
// Calculate the scaled upper poly that belongs to current region
- auto p = intersection_ex(upper_layer->m_regions[region_id]->slices.surfaces, upper_poly);
- // And now union it
+ auto p = union_ex(intersection_ex(upper_layer->m_regions[region_id]->slices.surfaces, upper_poly));
+
+ // Remove all islands that have already been fully covered by current layer
+ p.erase(std::remove_if(p.begin(), p.end(), [¤t_poly](const ExPolygon& ex) {
+ return diff_ex(ex, current_poly).empty();
+ }), p.end());
+
+ // And now union it with current region
ExPolygons layer_polygons = to_expolygons(layer->m_regions[region_id]->slices.surfaces);
layer->m_regions[region_id]->slices.set(union_ex(layer_polygons, p), stInternal);
+
+ // Then remove it from all other regions, to avoid overlapping regions
+ for (size_t other_region = 0; other_region < this->num_printing_regions(); ++other_region) {
+ if (other_region == region_id) {
+ continue;
+ }
+ ExPolygons s = to_expolygons(layer->m_regions[other_region]->slices.surfaces);
+ layer->m_regions[other_region]->slices.set(diff_ex(s, p, ApplySafetyOffset::Yes), stInternal);
+ }
}
//layer->export_region_slices_to_svg_debug("layer_after_conical_overhang");
}
diff --git a/src/libslic3r/ShortestPath.cpp b/src/libslic3r/ShortestPath.cpp
index a2a2680f52..3aa99e2b76 100644
--- a/src/libslic3r/ShortestPath.cpp
+++ b/src/libslic3r/ShortestPath.cpp
@@ -1910,14 +1910,15 @@ static inline void improve_ordering_by_two_exchanges_with_segment_flipping(Polyl
for (const FlipEdge &edge : edges) {
Polyline &pl = polylines[edge.source_index];
out.emplace_back(std::move(pl));
- if (edge.p2 == pl.first_point().cast()) {
+ if (edge.p2 == out.back().first_point().cast()) {
// Polyline is flipped.
out.back().reverse();
} else {
// Polyline is not flipped.
- assert(edge.p1 == pl.first_point().cast());
+ assert(edge.p1 == out.back().first_point().cast());
}
}
+ polylines = out;
#ifndef NDEBUG
double cost_final = cost();
diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp
index 290871b914..6655e3911d 100644
--- a/src/libslic3r/Slicing.cpp
+++ b/src/libslic3r/Slicing.cpp
@@ -319,6 +319,13 @@ std::vector layer_height_profile_adaptive(const SlicingParameters& slici
else if (layer_height_profile.back() > height && layer_height_profile.back() - height > LAYER_HEIGHT_CHANGE_STEP)
height = layer_height_profile.back() - LAYER_HEIGHT_CHANGE_STEP;
+ for (auto const& [range,options] : object.layer_config_ranges) {
+ if ( print_z >= range.first && print_z <= range.second) {
+ height = options.opt_float("layer_height");
+ break;
+ };
+ };
+
layer_height_profile.push_back(print_z);
layer_height_profile.push_back(height);
print_z += height;
@@ -444,6 +451,7 @@ std::vector smooth_height_profile(const std::vector& profile, co
}
void adjust_layer_height_profile(
+ const ModelObject &model_object,
const SlicingParameters &slicing_params,
std::vector &layer_height_profile,
coordf_t z,
@@ -478,6 +486,11 @@ void adjust_layer_height_profile(
}
}
+ for (auto const& [range,options] : model_object.layer_config_ranges) {
+ if (z >= range.first - current_layer_height && z <= range.second + current_layer_height)
+ return;
+ };
+
// 2) Is it possible to apply the delta?
switch (action) {
case LAYER_HEIGHT_EDIT_ACTION_DECREASE:
diff --git a/src/libslic3r/Slicing.hpp b/src/libslic3r/Slicing.hpp
index 6ba3403bba..a7b21a140d 100644
--- a/src/libslic3r/Slicing.hpp
+++ b/src/libslic3r/Slicing.hpp
@@ -176,6 +176,7 @@ enum LayerHeightEditActionType : unsigned int {
};
void adjust_layer_height_profile(
+ const ModelObject &model_object,
const SlicingParameters &slicing_params,
std::vector &layer_height_profile,
coordf_t z,
diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp
index b26a000790..19b19cf347 100644
--- a/src/libslic3r/calib.hpp
+++ b/src/libslic3r/calib.hpp
@@ -266,8 +266,18 @@ public:
protected:
double speed_first_layer() const { return m_config.option("initial_layer_speed")->value; };
double speed_perimeter() const { return m_config.option("outer_wall_speed")->value; };
- double line_width_first_layer() const { return m_config.get_abs_value("initial_layer_line_width"); };
- double line_width() const { return m_config.get_abs_value("line_width"); };
+ double line_width_first_layer() const
+ {
+ // TODO: FIXME: find out current filament/extruder?
+ const double nozzle_diameter = m_config.opt_float("nozzle_diameter", 0);
+ return m_config.get_abs_value("initial_layer_line_width", nozzle_diameter);
+ };
+ double line_width() const
+ {
+ // TODO: FIXME: find out current filament/extruder?
+ const double nozzle_diameter = m_config.opt_float("nozzle_diameter", 0);
+ return m_config.get_abs_value("line_width", nozzle_diameter);
+ };
int wall_count() const { return m_config.option("wall_loops")->value; };
private:
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index 8a0b8fd4cc..12a990ee45 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -145,6 +145,8 @@ set(SLIC3R_GUI_SOURCES
#GUI/Gizmos/GLGizmoFaceDetector.hpp
GUI/Gizmos/GLGizmoMeasure.cpp
GUI/Gizmos/GLGizmoMeasure.hpp
+ GUI/Gizmos/GLGizmoAssembly.cpp
+ GUI/Gizmos/GLGizmoAssembly.hpp
GUI/Gizmos/GLGizmoSeam.cpp
GUI/Gizmos/GLGizmoSeam.hpp
#GUI/Gizmos/GLGizmoText.cpp
diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp
index 89a922c343..9070887052 100644
--- a/src/slic3r/GUI/3DScene.cpp
+++ b/src/slic3r/GUI/3DScene.cpp
@@ -675,12 +675,13 @@ std::vector GLVolumeCollection::load_object(
int obj_idx,
const std::vector &instance_idxs,
const std::string &color_by,
- bool opengl_initialized)
+ bool opengl_initialized,
+ bool need_raycaster)
{
std::vector volumes_idx;
for (int volume_idx = 0; volume_idx < int(model_object->volumes.size()); ++volume_idx)
for (int instance_idx : instance_idxs)
- volumes_idx.emplace_back(this->GLVolumeCollection::load_object_volume(model_object, obj_idx, volume_idx, instance_idx, color_by, opengl_initialized));
+ volumes_idx.emplace_back(this->GLVolumeCollection::load_object_volume(model_object, obj_idx, volume_idx, instance_idx, color_by, opengl_initialized, false, false, need_raycaster));
return volumes_idx;
}
@@ -693,7 +694,8 @@ int GLVolumeCollection::load_object_volume(
const std::string &color_by,
bool opengl_initialized,
bool in_assemble_view,
- bool use_loaded_id)
+ bool use_loaded_id,
+ bool need_raycaster)
{
const ModelVolume *model_volume = model_object->volumes[volume_idx];
const int extruder_id = model_volume->extruder_id();
@@ -711,7 +713,7 @@ int GLVolumeCollection::load_object_volume(
v.model.init_from(mesh, true);
#else
v.model.init_from(*mesh);
- v.mesh_raycaster = std::make_unique(mesh);
+ if (need_raycaster) { v.mesh_raycaster = std::make_unique(mesh); }
#endif // ENABLE_SMOOTH_NORMALS
v.composite_id = GLVolume::CompositeID(obj_idx, volume_idx, instance_idx);
diff --git a/src/slic3r/GUI/3DScene.hpp b/src/slic3r/GUI/3DScene.hpp
index cd89efa36a..8e39c0febd 100644
--- a/src/slic3r/GUI/3DScene.hpp
+++ b/src/slic3r/GUI/3DScene.hpp
@@ -439,7 +439,8 @@ public:
int obj_idx,
const std::vector &instance_idxs,
const std::string &color_by,
- bool opengl_initialized);
+ bool opengl_initialized,
+ bool need_raycaster = true);
int load_object_volume(
const ModelObject *model_object,
@@ -449,7 +450,8 @@ public:
const std::string &color_by,
bool opengl_initialized,
bool in_assemble_view = false,
- bool use_loaded_id = false);
+ bool use_loaded_id = false,
+ bool need_raycaster = true);
// Load SLA auxiliary GLVolumes (for support trees or pad).
void load_object_auxiliary(
const SLAPrintObject *print_object,
diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp
index d960025c6e..2b35869e7b 100644
--- a/src/slic3r/GUI/CreatePresetsDialog.cpp
+++ b/src/slic3r/GUI/CreatePresetsDialog.cpp
@@ -50,14 +50,14 @@ static const std::vector filament_vendors =
"Fil X", "GEEETECH", "Giantarm", "Gizmo Dorks", "GreenGate3D",
"HATCHBOX", "Hello3D", "IC3D", "IEMAI", "IIID Max",
"INLAND", "iProspect", "iSANMATE", "Justmaker", "Keene Village Plastics",
- "Kexcelled", "MakerBot", "MatterHackers", "MIKA3D", "NinjaTek",
- "Nobufil", "Novamaker", "OVERTURE", "OVVNYXE", "Polymaker",
- "Priline", "Printed Solid", "Protopasta", "Prusament", "Push Plastic",
- "R3D", "Re-pet3D", "Recreus", "Regen", "RatRig",
- "Sain SMART", "SliceWorx", "Snapmaker", "SnoLabs", "Spectrum",
- "SUNLU", "TTYT3D", "Tianse", "UltiMaker", "Valment",
- "Verbatim", "VO3D", "Voxelab", "VOXELPLA", "YOOPAI",
- "Yousu", "Ziro", "Zyltech"};
+ "Kexcelled", "LDO", "MakerBot", "MatterHackers", "MIKA3D",
+ "NinjaTek", "Nobufil", "Novamaker", "OVERTURE", "OVVNYXE",
+ "Polymaker", "Priline", "Printed Solid", "Protopasta", "Prusament",
+ "Push Plastic", "R3D", "Re-pet3D", "Recreus", "Regen",
+ "RatRig", "Sain SMART", "SliceWorx", "Snapmaker", "SnoLabs",
+ "Spectrum", "SUNLU", "TTYT3D", "Tianse", "UltiMaker",
+ "Valment", "Verbatim", "VO3D", "Voxelab", "VOXELPLA",
+ "YOOPAI", "Yousu", "Ziro", "Zyltech"};
static const std::vector filament_types = {"PLA", "rPLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
"NYLON", "PVA", "PVB", "PC", "PCABS", "PCTG", "PCCF", "PHA", "PP", "PEI", "PET",
@@ -543,16 +543,26 @@ static char* read_json_file(const std::string &preset_path)
static std::string get_printer_nozzle_diameter(std::string printer_name) {
- size_t index = printer_name.find(" nozzle");
+ size_t index = printer_name.find(" nozzle)");
if (std::string::npos == index) {
- return "";
+ size_t index = printer_name.find(" nozzle");
+ if (std::string::npos == index) {
+ return "";
+ }
+ std::string nozzle = printer_name.substr(0, index);
+ size_t last_space_index = nozzle.find_last_of(" ");
+ if (std::string::npos == index) {
+ return "";
+ }
+ return nozzle.substr(last_space_index + 1);
+ } else {
+ std::string nozzle = printer_name.substr(0, index);
+ size_t last_bracket_index = nozzle.find_last_of("(");
+ if (std::string::npos == index) {
+ return "";
+ }
+ return nozzle.substr(last_bracket_index + 1);
}
- std::string nozzle = printer_name.substr(0, index);
- size_t last_space_index = nozzle.find_last_of(" ");
- if (std::string::npos == index) {
- return "";
- }
- return nozzle.substr(last_space_index + 1);
}
static void adjust_dialog_in_screen(DPIDialog* dialog) {
@@ -1179,10 +1189,11 @@ wxArrayString CreateFilamentPresetDialog::get_filament_preset_choices()
std::string preset_name = filament_preset->name;
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " filament_id: " << filament_preset->filament_id << " preset name: " << filament_preset->name;
size_t index_at = preset_name.find(" @");
+ std::string cur_preset_name = preset_name;
if (std::string::npos != index_at) {
- std::string cur_preset_name = preset_name.substr(0, index_at);
- preset_name_set.insert(from_u8(cur_preset_name));
+ cur_preset_name = preset_name.substr(0, index_at);
}
+ preset_name_set.insert(from_u8(cur_preset_name));
}
assert(1 == preset_name_set.size());
if (preset_name_set.size() > 1) {
diff --git a/src/slic3r/GUI/Downloader.cpp b/src/slic3r/GUI/Downloader.cpp
index 7757ca3ad6..c5a22ac688 100644
--- a/src/slic3r/GUI/Downloader.cpp
+++ b/src/slic3r/GUI/Downloader.cpp
@@ -159,7 +159,7 @@ void Downloader::start_download(const std::string& full_url)
size_t id = get_next_id();
std::string escaped_url = FileGet::escape_url(full_url.substr(results.length()));
if (is_bambustudio_open(full_url) || (is_orca_open(full_url) && is_makerworld_link(full_url)))
- plater->request_model_download(escaped_url);
+ plater->request_model_download(wxString::FromUTF8(escaped_url));
else {
std::string text(escaped_url);
m_downloads.emplace_back(std::make_unique(id, std::move(escaped_url), this, m_dest_folder));
@@ -254,4 +254,4 @@ void Downloader::set_download_state(int id, DownloadState state)
}
}
-}
\ No newline at end of file
+}
diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp
index 4fd50ad189..00b9685861 100644
--- a/src/slic3r/GUI/GCodeViewer.cpp
+++ b/src/slic3r/GUI/GCodeViewer.cpp
@@ -3123,7 +3123,7 @@ void GCodeViewer::load_shells(const Print& print, bool initialized, bool force_p
instance_ids.resize(instance_index);
size_t current_volumes_count = m_shells.volumes.volumes.size();
- m_shells.volumes.load_object(model_obj, object_idx, instance_ids, "object", initialized);
+ m_shells.volumes.load_object(model_obj, object_idx, instance_ids, "object", initialized, false);
// adjust shells' z if raft is present
const SlicingParameters& slicing_parameters = obj->slicing_parameters();
diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp
index 9fbcd3f080..1a549e38b9 100644
--- a/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/src/slic3r/GUI/GLCanvas3D.cpp
@@ -590,7 +590,7 @@ void GLCanvas3D::LayersEditing::adjust_layer_height_profile()
{
this->update_slicing_parameters();
PrintObject::update_layer_height_profile(*m_model_object, *m_slicing_parameters, m_layer_height_profile);
- Slic3r::adjust_layer_height_profile(*m_slicing_parameters, m_layer_height_profile, this->last_z, this->strength, this->band_width, this->last_action);
+ Slic3r::adjust_layer_height_profile(*m_model_object, *m_slicing_parameters, m_layer_height_profile, this->last_z, this->strength, this->band_width, this->last_action);
m_layers_texture.valid = false;
}
@@ -4445,7 +4445,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
logical_pos = logical_pos.cwiseQuotient(Vec2d(factor, factor));
#endif // ENABLE_RETINA_GL
- if (!m_mouse.ignore_right_up) {
+ if (!m_mouse.ignore_right_up && m_gizmos.get_current_type() == GLGizmosManager::EType::Undefined) {
//BBS post right click event
if (!m_hover_plate_idxs.empty()) {
post_event(RBtnPlateEvent(EVT_GLCANVAS_PLATE_RIGHT_CLICK, { logical_pos, m_hover_plate_idxs.front() }));
diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp
index 2d67401d5f..34e050c369 100644
--- a/src/slic3r/GUI/GLCanvas3D.hpp
+++ b/src/slic3r/GUI/GLCanvas3D.hpp
@@ -743,6 +743,7 @@ public:
m_scene_raycaster.set_gizmos_on_top(value);
}
+ float get_explosion_ratio() { return m_explosion_ratio; }
void reset_explosion_ratio() { m_explosion_ratio = 1.0; }
void on_change_color_mode(bool is_dark, bool reinit = true);
const bool get_dark_mode_status() { return m_is_dark; }
diff --git a/src/slic3r/GUI/GLModel.cpp b/src/slic3r/GUI/GLModel.cpp
index 8f4546b620..76d2711266 100644
--- a/src/slic3r/GUI/GLModel.cpp
+++ b/src/slic3r/GUI/GLModel.cpp
@@ -1412,5 +1412,84 @@ GLModel::Geometry smooth_torus(unsigned int primary_resolution, unsigned int sec
return data;
}
+GLModel::Geometry init_plane_data(const indexed_triangle_set& its, const std::vector& triangle_indices, float normal_offset)
+{
+ GLModel::Geometry init_data;
+ init_data.format = { GUI::GLModel::Geometry::EPrimitiveType::Triangles, GLModel::Geometry::EVertexLayout::P3N3 };
+ init_data.reserve_indices(3 * triangle_indices.size());
+ init_data.reserve_vertices(3 * triangle_indices.size());
+ unsigned int i = 0;
+ for (int idx : triangle_indices) {
+ Vec3f v0 = its.vertices[its.indices[idx][0]];
+ Vec3f v1 = its.vertices[its.indices[idx][1]];
+ Vec3f v2 = its.vertices[its.indices[idx][2]];
+ const Vec3f n = (v1 - v0).cross(v2 - v0).normalized();
+ if (std::abs(normal_offset) > 0.0) {
+ v0 = v0 + n * normal_offset;
+ v1 = v1 + n * normal_offset;
+ v2 = v2 + n * normal_offset;
+ }
+ init_data.add_vertex(v0, n);
+ init_data.add_vertex(v1, n);
+ init_data.add_vertex(v2, n);
+ init_data.add_triangle(i, i + 1, i + 2);
+ i += 3;
+ }
+
+ return init_data;
+}
+
+GLModel::Geometry init_torus_data(unsigned int primary_resolution,
+ unsigned int secondary_resolution,
+ const Vec3f & center,
+ float radius,
+ float thickness,
+ const Vec3f & model_axis,
+ const Transform3f &world_trafo)
+{
+ const unsigned int torus_sector_count = std::max(4, primary_resolution);
+ const unsigned int section_sector_count = std::max(4, secondary_resolution);
+ const float torus_sector_step = 2.0f * float(M_PI) / float(torus_sector_count);
+ const float section_sector_step = 2.0f * float(M_PI) / float(section_sector_count);
+
+ GLModel::Geometry data;
+ data.format = { GLModel::Geometry::EPrimitiveType::Triangles, GLModel::Geometry::EVertexLayout::P3N3 };
+ data.reserve_vertices(torus_sector_count * section_sector_count);
+ data.reserve_indices(torus_sector_count * section_sector_count * 2 * 3);
+
+ // vertices
+ const Transform3f local_to_world_matrix = world_trafo * Geometry::translation_transform(center.cast()).cast() *
+ Eigen::Quaternion::FromTwoVectors(Vec3f::UnitZ(), model_axis);
+ for (unsigned int i = 0; i < torus_sector_count; ++i) {
+ const float section_angle = torus_sector_step * i;
+ const Vec3f radius_dir(std::cos(section_angle), std::sin(section_angle), 0.0f);
+ const Vec3f local_section_center = radius * radius_dir;
+ const Vec3f world_section_center = local_to_world_matrix * local_section_center;
+ const Vec3f local_section_normal = local_section_center.normalized().cross(Vec3f::UnitZ()).normalized();
+ const Vec3f world_section_normal = (Vec3f) (local_to_world_matrix.matrix().block(0, 0, 3, 3) * local_section_normal).normalized();
+ const Vec3f base_v = thickness * radius_dir;
+ for (unsigned int j = 0; j < section_sector_count; ++j) {
+ const Vec3f v = Eigen::AngleAxisf(section_sector_step * j, world_section_normal) * base_v;
+ data.add_vertex(world_section_center + v, (Vec3f) v.normalized());
+ }
+ }
+
+ // triangles
+ for (unsigned int i = 0; i < torus_sector_count; ++i) {
+ const unsigned int ii = i * section_sector_count;
+ const unsigned int ii_next = ((i + 1) % torus_sector_count) * section_sector_count;
+ for (unsigned int j = 0; j < section_sector_count; ++j) {
+ const unsigned int j_next = (j + 1) % section_sector_count;
+ const unsigned int i0 = ii + j;
+ const unsigned int i1 = ii_next + j;
+ const unsigned int i2 = ii_next + j_next;
+ const unsigned int i3 = ii + j_next;
+ data.add_triangle(i0, i1, i2);
+ data.add_triangle(i0, i2, i3);
+ }
+ }
+
+ return data;
+}
} // namespace GUI
} // namespace Slic3r
diff --git a/src/slic3r/GUI/GLModel.hpp b/src/slic3r/GUI/GLModel.hpp
index 4511cc32a8..bc43da6115 100644
--- a/src/slic3r/GUI/GLModel.hpp
+++ b/src/slic3r/GUI/GLModel.hpp
@@ -247,7 +247,15 @@ namespace GUI {
// the origin of the torus is in its center
GLModel::Geometry smooth_torus(unsigned int primary_resolution, unsigned int secondary_resolution, float radius, float thickness);
-} // namespace GUI
+ GLModel::Geometry init_plane_data(const indexed_triangle_set &its, const std::vector &triangle_indices,float normal_offset = 0.0f);
+ GLModel::Geometry init_torus_data(unsigned int primary_resolution,
+ unsigned int secondary_resolution,
+ const Vec3f & center,
+ float radius,
+ float thickness,
+ const Vec3f & model_axis,
+ const Transform3f &world_trafo);
+ } // namespace GUI
} // namespace Slic3r
#endif // slic3r_GLModel_hpp_
diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp
index 298453aeac..80ff299fba 100644
--- a/src/slic3r/GUI/GLToolbar.cpp
+++ b/src/slic3r/GUI/GLToolbar.cpp
@@ -793,8 +793,8 @@ void GLToolbar::do_action(GLToolbarItem::EActionType type, int item_id, GLCanvas
}
if (m_type == Normal && item->get_state() != GLToolbarItem::Disabled) {
- // the item may get disabled during the action, if not, set it back to normal state
- item->set_state(GLToolbarItem::Normal);
+ // the item may get disabled during the action, if not, set it back to hover state
+ item->set_state(GLToolbarItem::Hover);
parent.render();
}
}
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index f356637b34..cb7d2acf91 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -4283,7 +4283,6 @@ void GUI_App::check_new_version_sf(bool show_tips, int by_user)
best_pre = tag_version;
best_pre_url = root.get("html_url");
best_pre_content = root.get("body");
- best_pre.set_prerelease("Preview");
}
} else {
if (best_release < tag_version) {
@@ -4305,7 +4304,6 @@ void GUI_App::check_new_version_sf(bool show_tips, int by_user)
best_pre = tag_version;
best_pre_url = json_version.second.get("html_url");
best_pre_content = json_version.second.get("body");
- best_pre.set_prerelease("Preview");
}
} else {
if (best_release < tag_version) {
@@ -5650,7 +5648,8 @@ bool GUI_App::check_and_keep_current_preset_changes(const wxString& caption, con
bool is_called_from_configwizard = postponed_apply_of_keeped_changes != nullptr;
UnsavedChangesDialog dlg(caption, header, "", action_buttons);
- if (dlg.ShowModal() == wxID_CANCEL)
+ bool no_need_change = dlg.getUpdateItemCount() == 0 ? true : false;
+ if (!no_need_change && dlg.ShowModal() == wxID_CANCEL)
return false;
auto reset_modifications = [this, is_called_from_configwizard]() {
@@ -5665,7 +5664,7 @@ bool GUI_App::check_and_keep_current_preset_changes(const wxString& caption, con
load_current_presets(false);
};
- if (dlg.discard())
+ if (dlg.discard() || no_need_change)
reset_modifications();
else // save selected changes
{
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp
new file mode 100644
index 0000000000..c20ec975c7
--- /dev/null
+++ b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp
@@ -0,0 +1,167 @@
+#include "GLGizmoAssembly.hpp"
+#include "slic3r/GUI/GLCanvas3D.hpp"
+#include "slic3r/GUI/GUI_App.hpp"
+#include "slic3r/GUI/Plater.hpp"
+#include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp"
+#include "slic3r/Utils/UndoRedo.hpp"
+
+#include "libslic3r/PresetBundle.hpp"
+#include "libslic3r/MeasureUtils.hpp"
+
+#include
+
+#include
+
+#include
+
+#include
+#include
+#include
+
+namespace Slic3r {
+namespace GUI {
+
+GLGizmoAssembly::GLGizmoAssembly(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id) :
+ GLGizmoMeasure(parent, icon_filename, sprite_id)
+{
+ m_measure_mode = EMeasureMode::ONLY_ASSEMBLY;
+}
+
+std::string GLGizmoAssembly::on_get_name() const
+{
+ if (!on_is_activable() && m_state == EState::Off) {
+ if (wxGetApp().plater()->canvas3D()->get_canvas_type() == GLCanvas3D::ECanvasType::CanvasAssembleView) {
+ return _u8L("Assemble") + ":\n" + _u8L("Please confirm explosion ratio = 1 and select at least two volumes.");
+ }
+ else {
+ return _u8L("Assemble") + ":\n" + _u8L("Please select at least two volumes.");
+ }
+ } else {
+ return _u8L("Assemble");
+ }
+}
+
+bool GLGizmoAssembly::on_is_activable() const
+{
+ const Selection& selection = m_parent.get_selection();
+ if (selection.is_wipe_tower()) {
+ return false;
+ }
+ const int selection_volumes_count = 2;
+ if (wxGetApp().plater()->canvas3D()->get_canvas_type() == GLCanvas3D::ECanvasType::CanvasAssembleView) {
+ if (abs(m_parent.get_explosion_ratio() - 1.0f) < 1e-2 && selection.volumes_count() >= selection_volumes_count) {
+ return true;
+ }
+ return false;
+ } else {
+ return selection.volumes_count() >= selection_volumes_count;
+ }
+}
+
+void GLGizmoAssembly::on_render_input_window(float x, float y, float bottom_limit)
+{
+ static std::optional last_feature;
+ static EMode last_mode = EMode::FeatureSelection;
+ static SelectedFeatures last_selected_features;
+
+ static float last_y = 0.0f;
+ static float last_h = 0.0f;
+
+ if (m_editing_distance)
+ return;
+ m_current_active_imgui_id = ImGui::GetActiveID();
+ // adjust window position to avoid overlap the view toolbar
+ const float win_h = ImGui::GetWindowHeight();
+ y = std::min(y, bottom_limit - win_h);
+ GizmoImguiSetNextWIndowPos(x, y, ImGuiCond_Always, 0.0f, 0.0f);
+ if (last_h != win_h || last_y != y) {
+ // ask canvas for another frame to render the window in the correct position
+ m_imgui->set_requires_extra_frame();
+ if (last_h != win_h)
+ last_h = win_h;
+ if (last_y != y)
+ last_y = y;
+ }
+ // Orca
+ ImGuiWrapper::push_toolbar_style(m_parent.get_scale());
+ GizmoImguiBegin(get_name(), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar);
+ init_render_input_window();
+
+ float moving_size = m_imgui->calc_text_size(_L("(Moving)")).x;
+ float combox_content_size = m_imgui->calc_text_size(_L("Point and point assembly")).x*1.1 + ImGui::GetStyle().FramePadding.x * 18.0f;
+ float caption_size = moving_size + 2 * m_space_size;
+ if (render_assembly_mode_combo(caption_size + 0.5 * m_space_size, combox_content_size)) {
+ ;
+ }
+ show_selection_ui();
+ show_face_face_assembly_common();
+ ImGui::Separator();
+ show_face_face_assembly_senior();
+ show_distance_xyz_ui();
+ render_input_window_warning(m_same_model_object);
+ ImGui::Separator();
+
+ ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 10.0f));
+ float get_cur_y = ImGui::GetContentRegionMax().y + ImGui::GetFrameHeight() + y;
+ float caption_max = 0.f;
+ float total_text_max = 0.f;
+ for (const auto &t : std::array{"point_selection", "reset", "unselect"}) {
+ caption_max = std::max(caption_max, m_imgui->calc_text_size(m_desc[t + "_caption"]).x);
+ total_text_max = std::max(total_text_max, m_imgui->calc_text_size(m_desc[t]).x);
+ }
+ show_tooltip_information(caption_max, x, get_cur_y);
+
+ float f_scale =m_parent.get_gizmos_manager().get_layout_scale();
+ ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f * f_scale));
+
+ ImGui::PopStyleVar(2);
+
+ if (last_feature != m_curr_feature || last_mode != m_mode || last_selected_features != m_selected_features) {
+ // the dialog may have changed its size, ask for an extra frame to render it properly
+ last_feature = m_curr_feature;
+ last_mode = m_mode;
+ last_selected_features = m_selected_features;
+ m_imgui->set_requires_extra_frame();
+ }
+ m_last_active_item_imgui = m_current_active_imgui_id;
+ GizmoImguiEnd();
+ // Orca
+ ImGuiWrapper::pop_toolbar_style();
+}
+
+void GLGizmoAssembly::render_input_window_warning(bool same_model_object)
+{
+ if (wxGetApp().plater()->canvas3D()->get_canvas_type() == GLCanvas3D::ECanvasType::CanvasView3D) {
+ if (m_hit_different_volumes.size() == 2) {
+ if (same_model_object == false) {
+ m_imgui->warning_text(_L("Warning") + ": " +
+ _L("It is recommended to assemble the objects first,\nbecause the objects is restriced to bed \nand only parts can be lifted."));
+ }
+ }
+ }
+}
+
+bool GLGizmoAssembly::render_assembly_mode_combo(double label_width, float item_width)
+{
+ ImGui::AlignTextToFramePadding();
+ int selection_idx = int(m_assembly_mode);
+ std::vector modes = {_u8L("Face and face assembly"), _u8L("Point and point assembly")};
+ bool is_changed = false;
+
+ ImGuiWrapper::push_combo_style(m_parent.get_scale());
+ if (render_combo(_u8L("Mode"), modes, selection_idx, label_width, item_width)) {
+ is_changed = true;
+ switch_to_mode((AssemblyMode) selection_idx);
+ }
+ ImGuiWrapper::pop_combo_style();
+ return is_changed;
+}
+
+void GLGizmoAssembly::switch_to_mode(AssemblyMode new_mode)
+{
+ m_assembly_mode = new_mode;
+ reset_all_feature();
+}
+
+} // namespace GUI
+} // namespace Slic3r
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp
new file mode 100644
index 0000000000..7046337b60
--- /dev/null
+++ b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp
@@ -0,0 +1,43 @@
+#ifndef slic3r_GLGizmoAssembly_hpp_
+#define slic3r_GLGizmoAssembly_hpp_
+
+#include "GLGizmoMeasure.hpp"
+
+namespace Slic3r {
+
+namespace GUI {
+class GLGizmoAssembly : public GLGizmoMeasure
+{
+
+public:
+ GLGizmoAssembly(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id);
+ ///
+ /// Apply rotation on select plane
+ ///
+ /// Keep information about mouse click
+ /// Return True when use the information otherwise False.
+ //bool on_mouse(const wxMouseEvent &mouse_event) override;
+ //void data_changed(bool is_serializing) override;
+ //bool gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_position, bool shift_down, bool alt_down, bool control_down) override;
+
+ bool wants_enter_leave_snapshots() const override { return true; }
+ std::string get_gizmo_entering_text() const override { return _u8L("Entering Assembly gizmo"); }
+ std::string get_gizmo_leaving_text() const override { return _u8L("Leaving Assembly gizmo"); }
+protected:
+ //bool on_init() override;
+ std::string on_get_name() const override;
+ bool on_is_activable() const override;
+ //void on_render() override;
+ //void on_set_state() override;
+ virtual void on_render_input_window(float x, float y, float bottom_limit) override;
+
+ void render_input_window_warning(bool same_model_object) override;
+ bool render_assembly_mode_combo(double label_width, float item_width);
+
+ void switch_to_mode(AssemblyMode new_mode);
+};
+
+} // namespace GUI
+} // namespace Slic3r
+
+#endif // slic3r_GLGizmoAssembly_hpp_
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp
index 0a219a5cc3..97875ee606 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp
@@ -194,6 +194,39 @@ void GLGizmoBase::Grabber::render(float size, const ColorRGBA& render_color)
}
}
+bool GLGizmoBase::render_combo(const std::string &label, const std::vector &lines, int &selection_idx, float label_width, float item_width)
+{
+ ImGuiWrapper::push_combo_style(m_parent.get_scale());
+ ImGui::AlignTextToFramePadding();
+ m_imgui->text(label);
+ ImGui::SameLine(label_width);
+ ImGui::PushItemWidth(item_width);
+
+ size_t selection_out = selection_idx;
+
+ const char *selected_str = (selection_idx >= 0 && selection_idx < int(lines.size())) ? lines[selection_idx].c_str() : "";
+ if (ImGui::BBLBeginCombo(("##" + label).c_str(), selected_str, 0)) {
+ for (size_t line_idx = 0; line_idx < lines.size(); ++line_idx) {
+ ImGui::PushID(int(line_idx));
+ if (ImGui::Selectable("", line_idx == selection_idx)) selection_out = line_idx;
+
+ ImGui::SameLine();
+ ImGui::Text("%s", lines[line_idx].c_str());
+ ImGui::PopID();
+ }
+
+ ImGui::EndCombo();
+ }
+
+ bool is_changed = selection_idx != selection_out;
+ selection_idx = selection_out;
+
+ //if (is_changed) update_connector_shape();
+ ImGuiWrapper::pop_combo_style();
+
+ return is_changed;
+}
+
GLGizmoBase::GLGizmoBase(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id)
: m_parent(parent)
, m_group_id(-1)
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp
index 4a177f02fc..e78da31501 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp
@@ -8,6 +8,7 @@
#include "slic3r/GUI/GLModel.hpp"
#include "slic3r/GUI/MeshUtils.hpp"
#include "slic3r/GUI/SceneRaycaster.hpp"
+#include "slic3r/GUI/3DScene.hpp"
#include
@@ -148,6 +149,9 @@ protected:
bool m_is_dark_mode = false;
+ bool render_combo(const std::string &label, const std::vector &lines,
+ int &selection_idx, float label_width, float item_width);
+
public:
GLGizmoBase(GLCanvas3D& parent,
const std::string& icon_filename,
@@ -181,6 +185,13 @@ public:
virtual bool apply_clipping_plane() { return true; }
+ ///
+ /// Implement when want to process mouse events in gizmo
+ /// Click, Right click, move, drag, ...
+ ///
+ /// Keep information about mouse click
+ /// Return True when use the information and don't want to propagate it otherwise False.
+ virtual bool on_mouse(const wxMouseEvent &mouse_event) { return false; }
unsigned int get_sprite_id() const { return m_sprite_id; }
int get_hover_id() const { return m_hover_id; }
@@ -209,14 +220,6 @@ public:
///
virtual void data_changed(bool is_serializing){};
- ///
- /// Implement when want to process mouse events in gizmo
- /// Click, Right click, move, drag, ...
- ///
- /// Keep information about mouse click
- /// Return True when use the information and don't want to propagate it otherwise False.
- virtual bool on_mouse(const wxMouseEvent &mouse_event) { return false; }
-
void register_raycasters_for_picking() { register_grabbers_for_picking(); on_register_raycasters_for_picking(); }
void unregister_raycasters_for_picking() { unregister_grabbers_for_picking(); on_unregister_raycasters_for_picking(); }
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
index c6fc3d445a..53e1ab1cad 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
@@ -520,40 +520,6 @@ bool GLGizmoCut3D::render_cut_mode_combo()
return is_changed;
}
-bool GLGizmoCut3D::render_combo(const std::string& label, const std::vector& lines, int& selection_idx)
-{
- ImGuiWrapper::push_combo_style(m_parent.get_scale());
- ImGui::AlignTextToFramePadding();
- m_imgui->text(label);
- ImGui::SameLine(m_label_width);
- ImGui::PushItemWidth(m_editing_window_width);
-
- size_t selection_out = selection_idx;
-
- const char* selected_str = (selection_idx >= 0 && selection_idx < int(lines.size())) ? lines[selection_idx].c_str() : "";
- if (ImGui::BBLBeginCombo(("##" + label).c_str(), selected_str, 0)) {
- for (size_t line_idx = 0; line_idx < lines.size(); ++line_idx) {
- ImGui::PushID(int(line_idx));
- if (ImGui::Selectable("", line_idx == selection_idx))
- selection_out = line_idx;
-
- ImGui::SameLine();
- ImGui::Text("%s", lines[line_idx].c_str());
- ImGui::PopID();
- }
-
- ImGui::EndCombo();
- }
-
- bool is_changed = selection_idx != selection_out;
- selection_idx = selection_out;
-
- //if (is_changed) update_connector_shape();
- ImGuiWrapper::pop_combo_style();
-
- return is_changed;
-}
-
bool GLGizmoCut3D::render_double_input(const std::string& label, double& value_in)
{
ImGui::AlignTextToFramePadding();
@@ -2299,7 +2265,7 @@ void GLGizmoCut3D::render_connectors_input_window(CutConnectors &connectors, flo
m_connector_style = int(CutConnectorStyle::Prism);
apply_selected_connectors([this, &connectors](size_t idx) { connectors[idx].attribs.style = CutConnectorStyle(m_connector_style); });
}
- if (render_combo(m_labels_map["Style"], m_connector_styles, m_connector_style))
+ if (render_combo(m_labels_map["Style"], m_connector_styles, m_connector_style, m_label_width, m_editing_window_width))
apply_selected_connectors([this, &connectors](size_t idx) { connectors[idx].attribs.style = CutConnectorStyle(m_connector_style); });
m_imgui->disabled_end();
@@ -2308,7 +2274,7 @@ void GLGizmoCut3D::render_connectors_input_window(CutConnectors &connectors, flo
m_connector_shape_id = int(CutConnectorShape::Circle);
apply_selected_connectors([this, &connectors](size_t idx) { connectors[idx].attribs.shape = CutConnectorShape(m_connector_shape_id); });
}
- if (render_combo(m_labels_map["Shape"], m_connector_shapes, m_connector_shape_id))
+ if (render_combo(m_labels_map["Shape"], m_connector_shapes, m_connector_shape_id, m_label_width, m_editing_window_width))
apply_selected_connectors([this, &connectors](size_t idx) { connectors[idx].attribs.shape = CutConnectorShape(m_connector_shape_id); });
m_imgui->disabled_end();
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
index f09ca7a4b8..47a6d47f39 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
@@ -335,7 +335,6 @@ private:
void set_center(const Vec3d¢er, bool update_tbb = false);
void switch_to_mode(size_t new_mode);
bool render_cut_mode_combo();
- bool render_combo(const std::string&label, const std::vector&lines, int&selection_idx);
bool render_double_input(const std::string& label, double& value_in);
bool render_slider_double_input(const std::string& label, float& value_in, float& tolerance_in, float min_val = -0.1f, float max_tolerance = -0.1f);
void render_move_center_input(int axis);
diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
index 276699beef..e513fdb03f 100644
--- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
+++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
@@ -3,7 +3,7 @@
#include "slic3r/GUI/GUI_App.hpp"
#include "slic3r/GUI/Plater.hpp"
#include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp"
-
+#include "slic3r/Utils/UndoRedo.hpp"
#include "libslic3r/PresetBundle.hpp"
#include "libslic3r/MeasureUtils.hpp"
@@ -20,45 +20,21 @@
namespace Slic3r {
namespace GUI {
-
-static const Slic3r::ColorRGBA SELECTED_1ST_COLOR = { 0.25f, 0.75f, 0.75f, 1.0f };
-static const Slic3r::ColorRGBA SELECTED_2ND_COLOR = { 0.75f, 0.25f, 0.75f, 1.0f };
-static const Slic3r::ColorRGBA NEUTRAL_COLOR = {0.5f, 0.5f, 0.5f, 1.0f};
-static const Slic3r::ColorRGBA HOVER_COLOR = ColorRGBA::GREEN();
-
-static const int POINT_ID = 100;
-static const int EDGE_ID = 200;
-static const int CIRCLE_ID = 300;
-static const int PLANE_ID = 400;
-static const int SEL_SPHERE_1_ID = 501;
-static const int SEL_SPHERE_2_ID = 502;
-
-static const float TRIANGLE_BASE = 10.0f;
-static const float TRIANGLE_HEIGHT = TRIANGLE_BASE * 1.618033f;
-
-static const std::string CTRL_STR =
-#ifdef __APPLE__
-"⌘"
-#else
-"Ctrl"
-#endif //__APPLE__
-;
-
-static std::string format_double(double value)
+std::string GLGizmoMeasure::format_double(double value)
{
char buf[1024];
sprintf(buf, "%.3f", value);
return std::string(buf);
}
-static std::string format_vec3(const Vec3d& v)
+std::string GLGizmoMeasure::format_vec3(const Vec3d &v)
{
char buf[1024];
sprintf(buf, "X: %.3f, Y: %.3f, Z: %.3f", v.x(), v.y(), v.z());
return std::string(buf);
}
-static std::string surface_feature_type_as_string(Measure::SurfaceFeatureType type)
+std::string GLGizmoMeasure::surface_feature_type_as_string(Measure::SurfaceFeatureType type)
{
switch (type)
{
@@ -71,7 +47,7 @@ static std::string surface_feature_type_as_string(Measure::SurfaceFeatureType ty
}
}
-static std::string point_on_feature_type_as_string(Measure::SurfaceFeatureType type, int hover_id)
+std::string GLGizmoMeasure::point_on_feature_type_as_string(Measure::SurfaceFeatureType type, int hover_id)
{
std::string ret;
switch (type) {
@@ -84,7 +60,7 @@ static std::string point_on_feature_type_as_string(Measure::SurfaceFeatureType t
return ret;
}
-static std::string center_on_feature_type_as_string(Measure::SurfaceFeatureType type)
+std::string GLGizmoMeasure::center_on_feature_type_as_string(Measure::SurfaceFeatureType type)
{
std::string ret;
switch (type) {
@@ -95,84 +71,13 @@ static std::string center_on_feature_type_as_string(Measure::SurfaceFeatureType
return ret;
}
-static GLModel::Geometry init_plane_data(const indexed_triangle_set& its, const std::vector& triangle_indices)
-{
- GLModel::Geometry init_data;
- init_data.format = { GUI::GLModel::Geometry::EPrimitiveType::Triangles, GLModel::Geometry::EVertexLayout::P3N3 };
- init_data.reserve_indices(3 * triangle_indices.size());
- init_data.reserve_vertices(3 * triangle_indices.size());
- unsigned int i = 0;
- for (int idx : triangle_indices) {
- const Vec3f& v0 = its.vertices[its.indices[idx][0]];
- const Vec3f& v1 = its.vertices[its.indices[idx][1]];
- const Vec3f& v2 = its.vertices[its.indices[idx][2]];
-
- const Vec3f n = (v1 - v0).cross(v2 - v0).normalized();
- init_data.add_vertex(v0, n);
- init_data.add_vertex(v1, n);
- init_data.add_vertex(v2, n);
- init_data.add_triangle(i, i + 1, i + 2);
- i += 3;
- }
-
- return init_data;
-}
-
-static GLModel::Geometry init_torus_data(unsigned int primary_resolution, unsigned int secondary_resolution, const Vec3f& center,
- float radius, float thickness, const Vec3f& model_axis, const Transform3f& world_trafo)
-{
- const unsigned int torus_sector_count = std::max(4, primary_resolution);
- const unsigned int section_sector_count = std::max(4, secondary_resolution);
- const float torus_sector_step = 2.0f * float(M_PI) / float(torus_sector_count);
- const float section_sector_step = 2.0f * float(M_PI) / float(section_sector_count);
-
- GLModel::Geometry data;
- data.format = { GLModel::Geometry::EPrimitiveType::Triangles, GLModel::Geometry::EVertexLayout::P3N3 };
- data.reserve_vertices(torus_sector_count * section_sector_count);
- data.reserve_indices(torus_sector_count * section_sector_count * 2 * 3);
-
- // vertices
- const Transform3f local_to_world_matrix = world_trafo * Geometry::translation_transform(center.cast()).cast() *
- Eigen::Quaternion::FromTwoVectors(Vec3f::UnitZ(), model_axis);
- for (unsigned int i = 0; i < torus_sector_count; ++i) {
- const float section_angle = torus_sector_step * i;
- const Vec3f radius_dir(std::cos(section_angle), std::sin(section_angle), 0.0f);
- const Vec3f local_section_center = radius * radius_dir;
- const Vec3f world_section_center = local_to_world_matrix * local_section_center;
- const Vec3f local_section_normal = local_section_center.normalized().cross(Vec3f::UnitZ()).normalized();
- const Vec3f world_section_normal = (Vec3f)(local_to_world_matrix.matrix().block(0, 0, 3, 3) * local_section_normal).normalized();
- const Vec3f base_v = thickness * radius_dir;
- for (unsigned int j = 0; j < section_sector_count; ++j) {
- const Vec3f v = Eigen::AngleAxisf(section_sector_step * j, world_section_normal) * base_v;
- data.add_vertex(world_section_center + v, (Vec3f)v.normalized());
- }
- }
-
- // triangles
- for (unsigned int i = 0; i < torus_sector_count; ++i) {
- const unsigned int ii = i * section_sector_count;
- const unsigned int ii_next = ((i + 1) % torus_sector_count) * section_sector_count;
- for (unsigned int j = 0; j < section_sector_count; ++j) {
- const unsigned int j_next = (j + 1) % section_sector_count;
- const unsigned int i0 = ii + j;
- const unsigned int i1 = ii_next + j;
- const unsigned int i2 = ii_next + j_next;
- const unsigned int i3 = ii + j_next;
- data.add_triangle(i0, i1, i2);
- data.add_triangle(i0, i2, i3);
- }
- }
-
- return data;
-}
-
-static bool is_feature_with_center(const Measure::SurfaceFeature& feature)
+bool GLGizmoMeasure::is_feature_with_center(const Measure::SurfaceFeature &feature)
{
const Measure::SurfaceFeatureType type = feature.get_type();
return (type == Measure::SurfaceFeatureType::Circle || (type == Measure::SurfaceFeatureType::Edge && feature.get_extra_point().has_value()));
}
-static Vec3d get_feature_offset(const Measure::SurfaceFeature& feature)
+Vec3d GLGizmoMeasure::get_feature_offset(const Measure::SurfaceFeature &feature)
{
Vec3d ret;
switch (feature.get_type())
@@ -197,83 +102,77 @@ static Vec3d get_feature_offset(const Measure::SurfaceFeature& feature)
}
default: { assert(false); }
}
-
return ret;
}
-class TransformHelper
+Vec3d TransformHelper::model_to_world(const Vec3d &model, const Transform3d &world_matrix) {
+ return world_matrix * model;
+}
+
+Vec4d TransformHelper::world_to_clip(const Vec3d &world, const Matrix4d &projection_view_matrix)
{
- struct Cache
- {
- std::array viewport;
- Matrix4d ndc_to_ss_matrix;
- Transform3d ndc_to_ss_matrix_inverse;
- };
+ return projection_view_matrix * Vec4d(world.x(), world.y(), world.z(), 1.0);
+}
- static Cache s_cache;
+Vec3d TransformHelper::clip_to_ndc(const Vec4d &clip) {
+ return Vec3d(clip.x(), clip.y(), clip.z()) / clip.w();
+}
-public:
- static Vec3d model_to_world(const Vec3d& model, const Transform3d& world_matrix) {
- return world_matrix * model;
- }
-
- static Vec4d world_to_clip(const Vec3d& world, const Matrix4d& projection_view_matrix) {
- return projection_view_matrix * Vec4d(world.x(), world.y(), world.z(), 1.0);
- }
-
- static Vec3d clip_to_ndc(const Vec4d& clip) {
- return Vec3d(clip.x(), clip.y(), clip.z()) / clip.w();
- }
-
- static Vec2d ndc_to_ss(const Vec3d& ndc, const std::array& viewport) {
- const double half_w = 0.5 * double(viewport[2]);
- const double half_h = 0.5 * double(viewport[3]);
- return { half_w * ndc.x() + double(viewport[0]) + half_w, half_h * ndc.y() + double(viewport[1]) + half_h };
- };
-
- static Vec4d model_to_clip(const Vec3d& model, const Transform3d& world_matrix, const Matrix4d& projection_view_matrix) {
- return world_to_clip(model_to_world(model, world_matrix), projection_view_matrix);
- }
-
- static Vec3d model_to_ndc(const Vec3d& model, const Transform3d& world_matrix, const Matrix4d& projection_view_matrix) {
- return clip_to_ndc(world_to_clip(model_to_world(model, world_matrix), projection_view_matrix));
- }
-
- static Vec2d model_to_ss(const Vec3d& model, const Transform3d& world_matrix, const Matrix4d& projection_view_matrix, const std::array& viewport) {
- return ndc_to_ss(clip_to_ndc(world_to_clip(model_to_world(model, world_matrix), projection_view_matrix)), viewport);
- }
-
- static Vec2d world_to_ss(const Vec3d& world, const Matrix4d& projection_view_matrix, const std::array& viewport) {
- return ndc_to_ss(clip_to_ndc(world_to_clip(world, projection_view_matrix)), viewport);
- }
-
- static const Matrix4d& ndc_to_ss_matrix(const std::array& viewport) {
- update(viewport);
- return s_cache.ndc_to_ss_matrix;
- }
-
- static const Transform3d ndc_to_ss_matrix_inverse(const std::array& viewport) {
- update(viewport);
- return s_cache.ndc_to_ss_matrix_inverse;
- }
-
-private:
- static void update(const std::array& viewport) {
- if (s_cache.viewport == viewport)
- return;
-
- const double half_w = 0.5 * double(viewport[2]);
- const double half_h = 0.5 * double(viewport[3]);
- s_cache.ndc_to_ss_matrix << half_w, 0.0, 0.0, double(viewport[0]) + half_w,
- 0.0, half_h, 0.0, double(viewport[1]) + half_h,
- 0.0, 0.0, 1.0, 0.0,
- 0.0, 0.0, 0.0, 1.0;
-
- s_cache.ndc_to_ss_matrix_inverse = s_cache.ndc_to_ss_matrix.inverse();
- s_cache.viewport = viewport;
- }
+Vec2d TransformHelper::ndc_to_ss(const Vec3d &ndc, const std::array &viewport)
+{
+ const double half_w = 0.5 * double(viewport[2]);
+ const double half_h = 0.5 * double(viewport[3]);
+ return { half_w * ndc.x() + double(viewport[0]) + half_w, half_h * ndc.y() + double(viewport[1]) + half_h };
};
+Vec4d TransformHelper::model_to_clip(const Vec3d &model, const Transform3d &world_matrix, const Matrix4d &projection_view_matrix)
+{
+ return world_to_clip(model_to_world(model, world_matrix), projection_view_matrix);
+}
+
+Vec3d TransformHelper::model_to_ndc(const Vec3d &model, const Transform3d &world_matrix, const Matrix4d &projection_view_matrix)
+{
+ return clip_to_ndc(world_to_clip(model_to_world(model, world_matrix), projection_view_matrix));
+}
+
+Vec2d TransformHelper::model_to_ss(const Vec3d &model, const Transform3d &world_matrix, const Matrix4d &projection_view_matrix, const std::array &viewport)
+{
+ return ndc_to_ss(clip_to_ndc(world_to_clip(model_to_world(model, world_matrix), projection_view_matrix)), viewport);
+}
+
+Vec2d TransformHelper::world_to_ss(const Vec3d &world, const Matrix4d &projection_view_matrix, const std::array &viewport)
+{
+ return ndc_to_ss(clip_to_ndc(world_to_clip(world, projection_view_matrix)), viewport);
+}
+
+const Matrix4d &TransformHelper::ndc_to_ss_matrix(const std::array &viewport)
+{
+ update(viewport);
+ return s_cache.ndc_to_ss_matrix;
+}
+
+const Transform3d TransformHelper::ndc_to_ss_matrix_inverse(const std::array &viewport)
+{
+ update(viewport);
+ return s_cache.ndc_to_ss_matrix_inverse;
+}
+
+void TransformHelper::update(const std::array &viewport)
+{
+ if (s_cache.viewport == viewport)
+ return;
+
+ const double half_w = 0.5 * double(viewport[2]);
+ const double half_h = 0.5 * double(viewport[3]);
+ s_cache.ndc_to_ss_matrix << half_w, 0.0, 0.0, double(viewport[0]) + half_w,
+ 0.0, half_h, 0.0, double(viewport[1]) + half_h,
+ 0.0, 0.0, 1.0, 0.0,
+ 0.0, 0.0, 0.0, 1.0;
+
+ s_cache.ndc_to_ss_matrix_inverse = s_cache.ndc_to_ss_matrix.inverse();
+ s_cache.viewport = viewport;
+}
+
TransformHelper::Cache TransformHelper::s_cache = { { 0, 0, 0, 0 }, Matrix4d::Identity(), Transform3d::Identity() };
GLGizmoMeasure::GLGizmoMeasure(GLCanvas3D& parent, const std::string& icon_filename, unsigned int sprite_id)
@@ -282,23 +181,23 @@ GLGizmoMeasure::GLGizmoMeasure(GLCanvas3D& parent, const std::string& icon_filen
GLModel::Geometry sphere_geometry = smooth_sphere(16, 7.5f);
m_sphere.mesh_raycaster = std::make_unique(std::make_shared(sphere_geometry.get_as_indexed_triangle_set()));
m_sphere.model.init_from(std::move(sphere_geometry));
+ m_gripper_id_raycast_map[GripperType::POINT] = std::make_shared(POINT_ID, *m_sphere.mesh_raycaster);
GLModel::Geometry cylinder_geometry = smooth_cylinder(16, 5.0f, 1.0f);
m_cylinder.mesh_raycaster = std::make_unique(std::make_shared(cylinder_geometry.get_as_indexed_triangle_set()));
m_cylinder.model.init_from(std::move(cylinder_geometry));
+ m_gripper_id_raycast_map[GripperType::EDGE] = std::make_shared(EDGE_ID, *m_cylinder.mesh_raycaster);
}
bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
{
- m_mouse_pos = { double(mouse_event.GetX()), double(mouse_event.GetY()) };
-
if (mouse_event.Moving()) {
- // only for sure
+ // only for sure
m_mouse_left_down = false;
return false;
}
else if (mouse_event.Dragging()) {
- // Enable/Disable panning/rotating the 3D scene
+ // Enable/Disable panning/rotating the 3D scene
// Ctrl is pressed or the mouse is not hovering a selected volume
bool unlock_dragging = mouse_event.CmdDown() || (m_hover_id == -1 && !m_parent.get_selection().contains_volume(m_parent.get_first_hover_volume_idx()));
// mode is not center selection or mouse is not hovering a center
@@ -312,7 +211,7 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
if (m_hover_id != -1) {
m_mouse_left_down = true;
-
+ m_mouse_left_down_mesh_deal = true;
auto detect_current_item = [this]() {
SelectedFeatures::Item item;
if (m_hover_id == SEL_SPHERE_1_ID) {
@@ -341,7 +240,13 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
switch (m_mode)
{
case EMode::FeatureSelection: { item = { false, m_curr_feature, m_curr_feature }; break; }
- case EMode::PointSelection: { item = { false, m_curr_feature, Measure::SurfaceFeature(*m_curr_point_on_feature_position) }; break; }
+ case EMode::PointSelection: {
+ item = { false, m_curr_feature, Measure::SurfaceFeature(*m_curr_point_on_feature_position)};
+ auto local_pt = m_curr_feature->world_tran.inverse() * (*m_curr_point_on_feature_position);
+ item.feature->origin_surface_feature = std::make_shared(local_pt);
+ item.feature->world_tran = m_curr_feature->world_tran;
+ item.feature->volume = m_curr_feature->volume;
+ break; }
}
}
return item;
@@ -358,7 +263,13 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
};
if (m_selected_features.first.feature.has_value()) {
+ reset_feature2_render();
const SelectedFeatures::Item item = detect_current_item();
+ if (!is_pick_meet_assembly_mode(item)) { // assembly deal
+ m_selected_wrong_feature_waring_tip = true;
+ return true;
+ }
+ m_selected_wrong_feature_waring_tip = false;
if (m_selected_features.first != item) {
bool processed = false;
if (item.is_center) {
@@ -388,14 +299,18 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
if (!processed) {
remove_selected_sphere_raycaster(SEL_SPHERE_2_ID);
- if (m_selected_features.second == item)
+ if (m_selected_features.second == item) {
// 2nd feature deselection
- m_selected_features.second.reset();
+ // m_selected_features.second.reset();
+ reset_feature2();
+ }
else {
// 2nd feature selection
m_selected_features.second = item;
- if (requires_sphere_raycaster_for_picking(item))
- m_selected_sphere_raycasters.push_back(m_parent.add_raycaster_for_picking(SceneRaycaster::EType::Gizmo, SEL_SPHERE_2_ID, *m_sphere.mesh_raycaster));
+ if (requires_sphere_raycaster_for_picking(item)) {
+ auto pick = std::make_shared(SEL_SPHERE_2_ID, *m_sphere.mesh_raycaster);
+ m_gripper_id_raycast_map[GripperType::SPHERE_2] = pick;
+ }
}
}
}
@@ -403,29 +318,36 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
remove_selected_sphere_raycaster(SEL_SPHERE_1_ID);
if (m_selected_features.second.feature.has_value()) {
// promote 2nd feature to 1st feature
- remove_selected_sphere_raycaster(SEL_SPHERE_2_ID);
- m_selected_features.first = m_selected_features.second;
- if (requires_sphere_raycaster_for_picking(m_selected_features.first))
- m_selected_sphere_raycasters.push_back(m_parent.add_raycaster_for_picking(SceneRaycaster::EType::Gizmo, SEL_SPHERE_1_ID, *m_sphere.mesh_raycaster));
- m_selected_features.second.reset();
- }
- else
+ reset_feature1();
+ if (requires_sphere_raycaster_for_picking(m_selected_features.first)) {
+ auto pick = std::make_shared(SEL_SPHERE_1_ID, *m_sphere.mesh_raycaster);
+ m_gripper_id_raycast_map[GripperType::SPHERE_1] = pick;
+ }
+ } else {
// 1st feature deselection
- m_selected_features.first.reset();
+ reset_feature1();
+ }
}
}
else {
// 1st feature selection
+ reset_feature1_render();
const SelectedFeatures::Item item = detect_current_item();
+ if (!is_pick_meet_assembly_mode(item)) {//assembly deal
+ m_selected_wrong_feature_waring_tip = true;
+ return true;
+ }
+ m_selected_wrong_feature_waring_tip = false;
m_selected_features.first = item;
- if (requires_sphere_raycaster_for_picking(item))
- m_selected_sphere_raycasters.push_back(m_parent.add_raycaster_for_picking(SceneRaycaster::EType::Gizmo, SEL_SPHERE_1_ID, *m_sphere.mesh_raycaster));
+ if (requires_sphere_raycaster_for_picking(item)) {
+ auto pick = std::make_shared(SEL_SPHERE_1_ID, *m_sphere.mesh_raycaster);
+ m_gripper_id_raycast_map[GripperType::SPHERE_1] = pick;
+ }
}
update_measurement_result();
m_imgui->set_requires_extra_frame();
-
return true;
}
else
@@ -459,22 +381,27 @@ bool GLGizmoMeasure::on_mouse(const wxMouseEvent &mouse_event)
return false;
}
+
void GLGizmoMeasure::data_changed(bool is_serializing)
{
- m_parent.toggle_sla_auxiliaries_visibility(false, nullptr, -1);
+ wxBusyCursor wait;
- update_if_needed();
-
- m_last_inv_zoom = 0.0f;
- m_last_plane_idx = -1;
- if (m_pending_scale) {
+ if (m_pending_scale > 0) {
+ update_if_needed();
+ register_single_mesh_pick();
update_measurement_result();
- m_pending_scale = false;
+ m_pending_scale --;
}
- else
- m_selected_features.reset();
- m_selected_sphere_raycasters.clear();
- m_editing_distance = false;
+ else {
+ m_parent.toggle_selected_volume_visibility(true);
+ reset_all_pick();
+ update_if_needed();
+ register_single_mesh_pick();
+ reset_all_feature();
+ }
+ m_last_inv_zoom = 0.0f;
+ m_last_plane_idx = -1;
+ m_editing_distance = false;
m_is_editing_distance_first_frame = true;
}
@@ -493,8 +420,7 @@ bool GLGizmoMeasure::gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_po
restore_scene_raycasters_state();
}
else if (action == SLAGizmoEventType::Delete) {
- m_selected_features.reset();
- m_selected_sphere_raycasters.clear();
+ reset_all_feature();
m_parent.request_extra_frame();
}
else if (action == SLAGizmoEventType::Escape) {
@@ -504,18 +430,13 @@ bool GLGizmoMeasure::gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_po
}
else {
if (m_selected_features.second.feature.has_value()) {
- remove_selected_sphere_raycaster(SEL_SPHERE_2_ID);
- m_selected_features.second.feature.reset();
+ reset_feature2();
}
else {
- remove_selected_sphere_raycaster(SEL_SPHERE_1_ID);
- m_selected_features.first.feature.reset();
+ reset_feature1();
}
-
- update_measurement_result();
}
}
-
return true;
}
@@ -523,14 +444,13 @@ bool GLGizmoMeasure::on_init()
{
m_shortcut_key = WXK_CONTROL_U;
- m_desc["feature_selection_caption"] = _L("ShiftLeft mouse button");
m_desc["feature_selection"] = _L("Select feature");
m_desc["point_selection_caption"] = _L("Shift + Left mouse button");
m_desc["point_selection"] = _L("Select point");
m_desc["reset_caption"] = _L("Delete");
m_desc["reset"] = _L("Restart selection");
m_desc["unselect_caption"] = _L("Esc");
- m_desc["unselect"] = _L("Unselect");
+ m_desc["unselect"] = _L("Cancel a feature until exit");
return true;
}
@@ -538,46 +458,101 @@ bool GLGizmoMeasure::on_init()
void GLGizmoMeasure::on_set_state()
{
if (m_state == Off) {
- m_parent.toggle_sla_auxiliaries_visibility(true, nullptr, -1);
+ m_parent.toggle_selected_volume_visibility(false);
m_shift_kar_filter.reset_count();
m_curr_feature.reset();
m_curr_point_on_feature_position.reset();
restore_scene_raycasters_state();
m_editing_distance = false;
m_is_editing_distance_first_frame = true;
- m_measuring.reset();
- m_raycaster.reset();
+ std::map>().swap(m_mesh_measure_map);
}
else {
m_mode = EMode::FeatureSelection;
- // store current state of scene raycaster for later use
- m_scene_raycasters.clear();
- auto scene_raycasters = m_parent.get_raycasters_for_picking(SceneRaycaster::EType::Volume);
- if (scene_raycasters != nullptr) {
- m_scene_raycasters.reserve(scene_raycasters->size());
- for (auto r : *scene_raycasters) {
- SceneRaycasterState state = { r, r->is_active() };
- m_scene_raycasters.emplace_back(state);
- }
- }
+ m_hover_id = -1;
+ m_show_reset_first_tip = false;
+ m_only_select_plane = false;
+ m_distance = Vec3d::Zero();
}
}
std::string GLGizmoMeasure::on_get_name() const
{
- return _u8L("Measure");
+ if (!on_is_activable() && m_state == EState::Off) {
+ if (wxGetApp().plater()->canvas3D()->get_canvas_type() == GLCanvas3D::ECanvasType::CanvasAssembleView) {
+ return _u8L("Measure") + ":\n" + _u8L("Please confirm explosion ratio = 1,and please select at least one object");
+ }
+ else {
+ return _u8L("Measure") + ":\n" + _u8L("Please select at least one object.");
+ }
+ } else {
+ return _u8L("Measure");
+ }
}
bool GLGizmoMeasure::on_is_activable() const
{
const Selection& selection = m_parent.get_selection();
- bool res = (wxGetApp().preset_bundle->printers.get_edited_preset().printer_technology() == ptSLA) ?
- selection.is_single_full_instance() :
- selection.is_single_full_instance() || selection.is_single_volume() || selection.is_single_modifier();
- if (res)
- res &= !selection.contains_sinking_volumes();
+ if (selection.is_wipe_tower()) {
+ return false;
+ }
+ if (wxGetApp().plater()->canvas3D()->get_canvas_type() == GLCanvas3D::ECanvasType::CanvasAssembleView) {
+ if (abs(m_parent.get_explosion_ratio() - 1.0f) < 1e-2 && selection.volumes_count() > 0) {
+ return true;
+ }
+ return false;
+ } else {
+ return selection.volumes_count() > 0;
+ }
+}
- return res;
+void GLGizmoMeasure::init_circle_glmodel(GripperType gripper_type, const Measure::SurfaceFeature &feature, CircleGLModel &circle_gl_model,float inv_zoom)
+{
+ const auto [center, radius, normal] = feature.get_circle();
+ auto cur_feature =const_cast(&feature);
+ if (circle_gl_model.inv_zoom != inv_zoom) {
+ if (circle_gl_model.last_circle_feature) {
+ const auto [last_center, last_radius, last_normal] = circle_gl_model.last_circle_feature->get_circle();
+ float eps = 1e-2;
+ if ((last_center - center).norm() < eps && (last_normal - normal).norm() < eps && abs(last_radius - radius) < eps){
+ return;
+ }
+ }
+ reset_gripper_pick(gripper_type);
+ circle_gl_model.circle.reset();
+ GLModel::Geometry circle_geometry = init_torus_data(64, 16, center.cast(), float(radius), 5.0f * inv_zoom, normal.cast(), Transform3f::Identity());
+ circle_gl_model.circle.mesh_raycaster = std::make_unique(std::make_shared(circle_geometry.get_as_indexed_triangle_set()));
+ circle_gl_model.circle.model.init_from(std::move(circle_geometry));
+ if (circle_gl_model.circle.model.is_initialized()) {
+ m_gripper_id_raycast_map[gripper_type] = std::make_shared(CIRCLE_ID, *m_curr_circle.circle.mesh_raycaster);
+ }
+ circle_gl_model.last_circle_feature = cur_feature;
+ circle_gl_model.inv_zoom = inv_zoom;
+ }
+}
+const float MEASURE_PLNE_NORMAL_OFFSET = 0.05;
+void GLGizmoMeasure::init_plane_glmodel(GripperType gripper_type, const Measure::SurfaceFeature &feature, PlaneGLModel &plane_gl_model)
+{
+ if (!feature.volume) { return; }
+ Selection& selection = m_parent.get_selection();
+ auto volume = static_cast(feature.volume);
+ const ModelObject* obj = selection.get_model()->objects[volume->object_idx()];
+ const ModelVolume* vol = obj->volumes[volume->volume_idx()];
+ auto mesh = vol->mesh_ptr();
+ const auto &[idx, normal, pt] = feature.get_plane();
+ if (plane_gl_model.plane_idx != idx) {
+ plane_gl_model.plane.reset();
+ }
+ if (!plane_gl_model.plane.model.is_initialized()) {
+ plane_gl_model.plane_idx = idx;
+ reset_gripper_pick(gripper_type);
+ GLModel::Geometry init_data = init_plane_data(mesh->its, *feature.plane_indices, MEASURE_PLNE_NORMAL_OFFSET);
+ plane_gl_model.plane.mesh_raycaster = std::make_unique(std::make_shared(init_data.get_as_indexed_triangle_set()));
+ plane_gl_model.plane.model.init_from(std::move(init_data));
+ if (plane_gl_model.plane.model.is_initialized()) {
+ m_gripper_id_raycast_map[gripper_type] = std::make_shared(PLANE_ID, *plane_gl_model.plane.mesh_raycaster, feature.world_tran);
+ }
+ }
}
void GLGizmoMeasure::on_render()
@@ -586,91 +561,166 @@ void GLGizmoMeasure::on_render()
render_debug_dialog();
#endif // ENABLE_MEASURE_GIZMO_DEBUG
-// // do not render if the user is panning/rotating the 3d scene
-// if (m_parent.is_mouse_dragging())
-// return;
-
+ Vec2d mouse_position = m_parent.get_local_mouse_position();
update_if_needed();
const Camera& camera = wxGetApp().plater()->get_camera();
const float inv_zoom = (float)camera.get_inv_zoom();
+ bool mouse_on_gripper = false;
+ bool mouse_on_object =false;
+ {
+ if (!m_editing_distance) {
+ Vec3f hit = Vec3f::Zero();
+ double closest_hit_squared_distance = std::numeric_limits::max();
+ for (auto item : m_gripper_id_raycast_map) {
- Vec3f position_on_model;
- Vec3f normal_on_model;
- size_t model_facet_idx;
- const bool mouse_on_object = m_raycaster->unproject_on_mesh(m_mouse_pos, Transform3d::Identity(), camera, position_on_model, normal_on_model, nullptr, &model_facet_idx);
- const bool is_hovering_on_feature = m_mode == EMode::PointSelection && m_hover_id != -1;
-
- auto update_circle = [this, inv_zoom]() {
- if (m_last_inv_zoom != inv_zoom || m_last_circle != m_curr_feature) {
- m_last_inv_zoom = inv_zoom;
- m_last_circle = m_curr_feature;
- m_circle.reset();
- const auto [center, radius, normal] = m_curr_feature->get_circle();
- GLModel::Geometry circle_geometry = init_torus_data(64, 16, center.cast(), float(radius), 5.0f * inv_zoom, normal.cast(), Transform3f::Identity());
- m_circle.mesh_raycaster = std::make_unique(std::make_shared(circle_geometry.get_as_indexed_triangle_set()));
- m_circle.model.init_from(std::move(circle_geometry));
- return true;
+ auto world_tran = item.second->get_transform();
+ Vec3f normal_on_gripper;
+ if (item.second->get_raycaster()->closest_hit(mouse_position, item.second->get_transform(), camera, hit, normal_on_gripper)) {
+ double hit_squared_distance = (camera.get_position() - world_tran * hit.cast()).squaredNorm();
+ if (hit_squared_distance < closest_hit_squared_distance) {
+ closest_hit_squared_distance = hit_squared_distance;
+ if (item.second->get_id() > 0) {
+ m_hover_id = item.second->get_id();
+ mouse_on_gripper = true;
+ }
+ }
+ }
+ }
}
- return false;
- };
+ }
+ Vec3d position_on_model;
+ Vec3d direction_on_model;
+ size_t model_facet_idx = -1;
+ double closest_hit_distance = std::numeric_limits::max();
+ {
+ if (!m_editing_distance) {
+ for (auto item : m_mesh_raycaster_map) {
+ auto raycaster = item.second->get_raycaster();
+ auto world_tran = item.second->get_transform();
+ Vec3f normal = Vec3f::Zero();
+ Vec3f hit = Vec3f::Zero();
+ size_t facet = 0;
+ if (raycaster->unproject_on_mesh(mouse_position, world_tran, camera, hit, normal, nullptr, &facet)) {
+ // Is this hit the closest to the camera so far?
+ double hit_squared_distance = (camera.get_position() - world_tran * hit.cast()).norm();
+ if (hit_squared_distance < closest_hit_distance) {
+ closest_hit_distance = hit_squared_distance;
+ mouse_on_object = true;
+ model_facet_idx = facet;
+ position_on_model = hit.cast();
+ m_last_hit_volume = item.first;
+ m_curr_measuring = m_mesh_measure_map[m_last_hit_volume];
+ }
+ }
+ }
+ }
+
+ if (!(mouse_on_gripper || mouse_on_object)) {
+ m_hover_id = -1;
+ m_last_plane_idx = -1;
+ reset_gripper_pick(GripperType::PLANE);
+ reset_gripper_pick(GripperType::CIRCLE);
+ }
+ if (m_mouse_left_down_mesh_deal && m_hover_id >= 0) {
+ m_mouse_left_down_mesh_deal = false;
+ if (m_selected_features.second.feature.has_value()) {
+ if (m_hit_order_volumes.size() == 1) {
+ m_hit_order_volumes.push_back(m_last_hit_volume);
+ } else {
+ m_hit_order_volumes[1] = m_last_hit_volume;
+ }
+ // deal hit_different_volumes
+ if (m_hit_different_volumes.size() >= 1) {
+ if (m_last_hit_volume == m_hit_different_volumes[0]) {
+ if (m_hit_different_volumes.size() == 2) {//hit same volume
+ m_hit_different_volumes.erase(m_hit_different_volumes.begin() + 1);
+ }
+ } else {
+ if (m_hit_different_volumes.size() == 2) {
+ m_hit_different_volumes[1] = m_last_hit_volume;
+ } else {
+ m_hit_different_volumes.push_back(m_last_hit_volume);
+ }
+ }
+ }
+ }
+ else if (m_selected_features.first.feature.has_value()) {
+ if (m_hit_order_volumes.size() == 0) {
+ m_hit_order_volumes.push_back(m_last_hit_volume);
+ } else {
+ m_hit_order_volumes[0] = m_last_hit_volume;
+ }
+ //deal hit_different_volumes
+ if (m_hit_different_volumes.size() == 0) {
+ m_hit_different_volumes.push_back(m_last_hit_volume);
+ }
+ }
+ }
+ }
+ //const bool mouse_on_object = m_raycaster->unproject_on_mesh(mouse_position, Transform3d::Identity(), camera, position_on_model, normal_on_model, nullptr, &model_facet_idx);
+ const bool is_hovering_on_feature = m_mode == EMode::PointSelection && m_hover_id != -1;
if (m_mode == EMode::FeatureSelection || m_mode == EMode::PointSelection) {
if (m_hover_id == SEL_SPHERE_1_ID || m_hover_id == SEL_SPHERE_2_ID) {
// Skip feature detection if hovering on a selected point/center
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, POINT_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, EDGE_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, PLANE_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, CIRCLE_ID);
+ //reset_gripper_pick(GripperType::UNDEFINE, true);
m_curr_feature.reset();
m_curr_point_on_feature_position.reset();
}
else {
- std::optional curr_feature = wxGetMouseState().LeftIsDown() ? m_curr_feature :
- mouse_on_object ? m_measuring->get_feature(model_facet_idx, position_on_model.cast()) : std::nullopt;
-
+ std::optional curr_feature = std::nullopt;
+ if (m_curr_measuring) {
+ curr_feature = wxGetMouseState().LeftIsDown() ? m_curr_feature :
+ mouse_on_object ? m_curr_measuring->get_feature(model_facet_idx, position_on_model,
+ m_mesh_raycaster_map[m_last_hit_volume]->get_transform(), m_only_select_plane) :
+ std::nullopt;
+ }
+ if (m_measure_mode == EMeasureMode::ONLY_ASSEMBLY) {
+ if (m_assembly_mode == AssemblyMode::FACE_FACE) {
+ if (curr_feature->get_type() != Measure::SurfaceFeatureType::Plane) {
+ curr_feature.reset();
+ }
+ } else if (m_assembly_mode == AssemblyMode::POINT_POINT) {
+ if (!(curr_feature->get_type() == Measure::SurfaceFeatureType::Point ||
+ curr_feature->get_type() == Measure::SurfaceFeatureType::Circle ||
+ (m_mode == EMode::PointSelection && (curr_feature->get_type() == Measure::SurfaceFeatureType::Plane || curr_feature->get_type() == Measure::SurfaceFeatureType::Edge)))) {
+ curr_feature.reset();
+ }
+ }
+ }
if (m_curr_feature != curr_feature ||
(curr_feature.has_value() && curr_feature->get_type() == Measure::SurfaceFeatureType::Circle && (m_curr_feature != curr_feature || m_last_inv_zoom != inv_zoom))) {
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, POINT_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, EDGE_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, PLANE_ID);
- m_parent.remove_raycasters_for_picking(SceneRaycaster::EType::Gizmo, CIRCLE_ID);
- m_raycasters.clear();
+ reset_gripper_pick(GripperType::UNDEFINE, true);
+
m_curr_feature = curr_feature;
if (!m_curr_feature.has_value())
return;
+ m_curr_feature->volume = m_last_hit_volume;
+ m_curr_feature->world_tran = m_mesh_raycaster_map[m_last_hit_volume]->get_transform();
switch (m_curr_feature->get_type()) {
default: { assert(false); break; }
case Measure::SurfaceFeatureType::Point:
{
- m_raycasters.insert({ POINT_ID, m_parent.add_raycaster_for_picking(SceneRaycaster::EType::Gizmo, POINT_ID, *m_sphere.mesh_raycaster) });
+ m_gripper_id_raycast_map[GripperType::POINT] = std::make_shared