Compare commits

..
Author SHA1 Message Date
Hanif Koh 75994583dd Keep Windows Setup Ahead of the Added libslic3r Includes
Print.cpp and Thread.cpp open with a _WIN32 block that has to come first; without the precompiled header, Print.cpp otherwise reaches windows.h through OCCT with NONLS defined and boost/regex fails. OpenVDBUtils.cpp and SLA/SupportTreeBuilder.cpp had includes inside #ifndef NOMINMAX, which libslic3r defines on Windows, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory.
2026-10-02 21:46:20 +08:00
Hanif Koh 145a7e5f80 Add the Includes Missing From the Hand-Fixed libslic3r Headers
clang-tidy would not edit these headers while they failed to compile on their own, so the first pass skipped them. With the headers now self-contained, a second pass adds the rest.
2026-10-02 21:46:20 +08:00
Hanif Koh f5ffb68e71 Ignore minilzo's Config Headers in clang-tidy
lzoconf.h and lzodefs.h are internal to minilzo.h, which is what the code includes.
2026-10-02 21:46:20 +08:00
Hanif Koh 67108725de Make the libslic3r Headers Compile on Their Own
Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Left out: I18N.hpp, which errors on purpose when included from GUI code, and VoxelizeCSGMesh.hpp and SLA/bicubic.h, which nothing includes and which no longer compile at all.
2026-10-02 21:46:20 +08:00
Hanif Koh fdf8ef7852 Add Missing Includes Across src/libslic3r
Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand.
2026-10-02 21:46:20 +08:00
Hanif Koh 71bf74dc2e Ignore Clipper, libpng, mcut and Boost.Polygon Internals in clang-tidy
Each only works through a wrapper or umbrella header: libslic3r/clipper.hpp or clipper_z.hpp configure Clipper before including it, png.h pulls in libpng's config headers, and Boost.Polygon's headers only compile through polygon.hpp or voronoi.hpp.
2026-10-02 21:46:12 +08:00
Noisyfox 6c6e8be43d Fix debug build cmake errors (#14593)
* Fix debug build after qhull upgrade

We upgraded qhull from 8.0.1 to 8.0.2 in 504a5d3b70, which contains a commit qhull/qhull@16159c648c `use same CMake target name for Debug and non-Debug`, so this target name check is no longer required

* Fix issue like `IMPORTED_LOCATION not set for imported target "opencv_world" configuration "RelWithDebInfo".` when build Debug config
2026-10-02 09:46:24 -03:00
HanifKohandSoftFever 205de9ce63 Keep User Preset Values on Extruder Variants They Don't List (#16046)
* Keep User Preset Values on Extruder Variants They Don't List

A user preset stores the variant list its parent had when it was saved.
When the parent later gains variants, update_diff_values_to_child_config
matched variants by name only and left the new ones at the parent's
value, so the user's settings were silently replaced there, and a
re-save wrote the system values into the user's file.

An unmatched parent variant now takes the child's first variant of the
same extruder, the rule slicing already uses in get_config_index_base.
A child without a variant list covers the parent's first extruder. The
name match also no longer indexes the child's extruder ids when it has
none.

* Share One Variant Column Rule Between Slicing, User Presets and Projects

Three places chose which variant column a value comes from, each with
its own copy of "the same variant and owner, else the owner's first
column": get_config_index_base when slicing, the user preset merge in
update_diff_values_to_child_config, and normalize_filament_values_to_variants
for projects and the CLI.

find_variant_column now holds that rule and map_variant_columns applies
it to a variant list, so a change to how missing variants are filled
reaches all three. Each caller keeps its own copy step. There is no
behaviour change: G-code is identical before and after. The one
relaxation is that get_config_index_base no longer reads past a short
id list when its two lists differ in length, which its assert already
rules out.

* Rename variant column helpers to variant index

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-10-02 20:13:06 +08:00
1255af1e9c Bundle uv in Windows ARM64 builds (#16070)
* fix: include bundled UV binary for arm64

* fix: update unit test CI

* Install unit-test numpy only with the bundled uv

* Simplify the unit-test script's uv lookup

---------

Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-10-02 19:37:29 +08:00
Kris Austin 8bf7b73141 ci: build Windows ARM64 with CMake 4.3 like the other platforms (#16052)
The ARM64 jobs pinned CMake 3.31 because CMake 4 dropped pre-3.5 policy
compatibility and its ARMASM support broke Boost.Context. Both are
handled now. deps/CMakeLists.txt sets CMAKE_POLICY_VERSION_MINIMUM on
CMake 4, and Boost.Context uses the winfib implementation on ARM64, so
nothing assembles with armasm.

CMake 3.31 also predates VS 2026. Its InstallRequiredSystemLibraries
treats the v145 toolset as v143, searches only the VS 2017-2022 install
directories and finds no runtime, so the ARM64 installer ships without
msvcp140.dll and vcruntime140.dll. CMake 4.2 and newer find the VC145
redistributable.

get-cmake also installs Ninja, so the ARM64 jobs now use its latest
release instead of the one already on the runner, as x64 does.

The install now fails when InstallRequiredSystemLibraries returns no
msvcp140.dll or vcruntime140.dll, after a configure warning naming the
CMake and MSVC versions. A CMake that predates the Visual Studio in use,
on a developer machine or after the next runner image update, then
stops the installer build instead of shipping one that cannot start.

The build_win.bat prerequisite installer drops its matching 3.31.8 pin.
2026-10-02 08:24:39 -03:00
SoftFever e63c6d0594 Fix Windows ARM64 builds crashing on every HTTPS connection (#16073) 2026-10-02 19:04:55 +08:00
SoftFever 79a89f817f Add a never-Raise-a-popup rule to the orca-wxwidgets skill 2026-10-02 18:16:15 +08:00
Eric McCann 83ee4f4476 U1: add HF nozzle variants and output flow type to avoid warnings on printer (#16043)
This is the bulk of the profile changes for U1 that led to the cooling
catiant connection.

The ugly end gcode is used by the printer's UI to complain if normal
nozzle is installed but the file was sliced for highflow.

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-10-02 18:06:13 +08:00
HanifKoh 390b7d8e6d Make Painted Multi-Material Slicing Deterministic (#15899)
* Make Painted Multi-Material Slicing Deterministic

Painted (multi-material) models sliced to slightly different G-code on
every run: ±1 µm wall coordinates and reordered islands. Hashing each stage
of the segmentation across runs showed the projected painted lines and the
per-layer Voronoi segmentation were stable; the raw top/bottom projections
from slice_mesh_slabs() were not. Three causes, all thread-order dependent:

- slice_slabs_make_lines() appends each slab's intersection lines from a
  parallel facet loop and never restored a canonical order, so the loop
  start vertices and polygon order from make_slab_loops() depended on
  scheduling. Sort every slab's lines with the same key slice_make_lines()
  already uses.
- segmentation_top_and_bottom_layers() wrote a layer's shell projections
  into neighbouring layers' vectors from the parallel loop, relying on a
  parity double-buffer that assumes TBB ranges are exactly one group wide
  and aligned, which blocked_range does not guarantee; two threads could
  append to the same vector. Each source layer now records its projections
  in its own slot and they are gathered per target layer in source order.
- The painted-line sort in post_process_painted_lines() was not a total
  order: projections of one span from facets of different colours tied on
  every key and the first one won the span. Colour and end points now break
  the tie.

Three multi-threaded runs of each painted fixture now give one G-code;
unpainted output is unchanged.

* Test That Slab Slicing Does Not Depend on the Thread Schedule

Projects a dense, tilted sphere with slice_mesh_slabs() on one thread and
then three times multi-threaded, and requires the polygons to match exactly,
vertex order included. Fails without the canonical line sort, passes with it.
2026-10-02 16:51:06 +08:00
HanifKoh 1a5f91d727 Add Missing Includes Across src/slic3r/GUI (#16048)
* Add Missing Includes Across src/slic3r/GUI

Every GUI source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, plus one hand edit making CalibrationPanel.hpp self-contained.

* Drop the OS-Specific Includes Added Outside Their Platform Guards

GLib, GTK, D-Bus and POSIX headers are only used inside platform #if blocks, which already include them. Added unconditionally at the top of the file they broke the Windows build.

* Add the clang-tidy Configuration That Generated These Includes

Only misc-include-cleaner's missing-include check, with the headers it must never suggest: per-platform, internal and OS-specific ones that would break other platforms or are not meant to be included directly.

* Match Windows Paths in the clang-tidy Ignore List

Header paths use backslashes on Windows, so every / in a pattern is now [/\\]. The Windows SDK headers are ignored alongside the other OS-specific ones, and the list is one pattern per line. Suggested by @raistlin7447 from a Windows clang-cl run.
2026-10-02 14:56:56 +08:00
Kris Austin 9d71125495 ci: allow running the Main build status workflow manually (#16057) 2026-10-01 18:25:12 -03:00
Kris Austin 88f05d3060 ci: move the nightly Build all to the quietest hour for macOS runners (#16053) 2026-10-01 17:58:00 -03:00
Kris Austin 4743d00793 ci: README build badge no longer shows failing when a queued main build is cancelled (#16054) 2026-10-01 17:56:57 -03:00
Ian Chua 2f4758446a feat: add foundation for configurable printer agent connection (#16027)
* feat: add foundation for configurable printer agent connection

* fix: regression after merge

* chore: remove duplcate http include

* fix: remove unrelated moonraker.cpp changes

* chore: port add_platform_root_certificates to 15711

* fix: clean diff
2026-10-01 22:50:56 +08:00
HanifKoh c023632a7d Lock Config and Preset Files Across Instances and Write Them Atomically (#15861)
* Lock Config and Preset Files Across Instances and Write Them Atomically

Every running instance shares one OrcaSlicer.conf and one user preset
tree, and nothing kept their writers apart. Two instances saving at the
same moment, or the cloud preset sync thread writing while the GUI thread
saved, could interleave, and a reader in another instance could open a
preset JSON or .info file between truncate and close and get a partial
file, dropping that preset for the session with a parse error.

Add InstanceLock, a scoped guard that serialises the threads of one
process through a recursive mutex and other processes through an advisory
OS file lock: flock on POSIX, held on the guard's own descriptor so no
other close in the process can drop it, and LockFileEx on Windows. The
outermost guard opens the lock file and closes it on release, so nothing
stays open between saves and a data dir can be removed once nothing is
saving into it; the file itself is kept, since deleting it would let a
third instance lock a fresh file while the second still holds the old
one. It is best effort: when the lock file cannot be opened or locked, or
another instance still holds it after a second, the guard logs once and
lets the write proceed, then leaves the file alone for ten seconds, so a
hung instance never blocks every other one and a holder stuck in a
debugger does not cost a stall per save. The guard sits at the leaf
readers and writers: set_sync_info_and_save() calls save_info() under the
preset collection mutex, so a batch lock around save_user_presets() would
invert the order against the sync thread. The user preset scan reads its
files on worker threads without the guard, since the mutex would
serialise them, and takes it per file in the serial commit step, so a
save never waits for the whole scan. Each read keeps the bytes of the
preset and its .info as they were before parsing; commit compares them
with the disk under the guard and reads a file that changed again, so it
never deletes or writes back over another instance's newer save, nor
installs a .json and .info from two different saves; a preset another
instance removed in the meantime is not installed. Without the guard, in
a cool-down, the scan still loads the presets but leaves their files
alone: an unreadable file stays for the next scan, and a derived
compatible printer is not written back. Read-only scans, which is what
the CLI does, take no lock and create no lock file.

AppConfig holds OrcaSlicer.conf.lock in load() and save(); load is
included because the Windows path restores from the .bak copy. Every
user preset writer and reader holds user.lock: Preset::save(), which
writes no .info when the preset itself could not be written, since an
.info without its preset reads as a cloud deletion request, save_info(),
reload() and remove_files(), each preset the scan commits, the
bundle metadata reads and write, the .info removal after a cloud-confirmed
delete, the orphaned-.info scan on the sync thread, the bundle folder
removal on unsubscribe and the physical printer writers and delete
paths. A bundle import extracts under cache/ into a folder per process
and per import, where no scan reads.

Preset JSON, .info, bundle metadata, physical printer and config files,
and the caches and state files that already used a temporary by hand,
now go through write_file_atomically(), which writes <file>.<pid>.<n>.tmp
beside the target and renames it over, so a reader that never waits sees
a complete old or new file. A symlink is followed; a target that is not
a regular file is written in place; and when no temporary can be created
beside an existing target, or the rename itself is refused, by a Windows
reader holding the file open or a mount that cannot replace in one step,
the helper writes in place as before, since losing the save is worse
than a torn read. On POSIX the rename replaces the
target atomically where the old code removed it first and left a window
with no file at all; only a mount that refuses a one-step replace gets
the old remove-then-rename. A crash between temporary and rename leaves
the temporary behind, which no scan reads. Preset::save() returns
whether it wrote the preset, so the scan counts a compatible printer it
could not write back as an error. A failed config write keeps
the config dirty, and the idle handler waits ten seconds before retrying
while an explicit save always tries.

* Run the Cross-Process Lock Test on Every Platform

The test that checks the guard yields to a lock held elsewhere forked a
child to hold it, so it was left out on Windows. The OS lock belongs to
the handle on Windows and to the open file description elsewhere, so a
second handle in the same process is refused like another instance
would be. The test now holds the lock that way and runs everywhere.
2026-10-01 22:18:21 +08:00
1386 changed files with 21524 additions and 791 deletions
+62
View File
@@ -0,0 +1,62 @@
# clang-tidy configuration. Only missing includes are reported for now: a file
# should include the header for every symbol it uses, not rely on the
# precompiled header or another header's includes. Run with --fix to add them.
Checks: '-*,misc-include-cleaner'
CheckOptions:
# Missing includes only. Builds without the precompiled header break on these.
misc-include-cleaner.UnusedIncludes: false
# Headers that declare a symbol but are not the one to include: per-platform
# implementations of wxWidgets and Boost.Thread (a Linux run would suggest the
# GTK or pthread one), library internals and forward declarations (MSVC's STL
# __msvc_* and the Windows UCRT's corecrt_* included), CPython's headers behind
# Python.h (python3.x/ on Linux and macOS, libpython/include/ on Windows),
# curl's behind curl.h, oneTBB's behind tbb/, and
# admesh's stl.h, which the include path also exposes without its directory.
# Clipper's own clipper.hpp is only included through libslic3r/clipper.hpp or
# clipper_z.hpp, which configure it first, and Boost.Polygon's headers only
# work through boost/polygon/polygon.hpp or voronoi.hpp. minilzo's config
# headers are internal to minilzo.h.
# FFmpeg's C headers are left alone because they are only included inside
# extern "C", which an inserted include would miss. OS-specific headers (GLib,
# GTK, D-Bus, POSIX, the Windows SDK) are only used inside platform #if blocks,
# and an include added at the top of the file would break the other platforms'
# builds. A symbol these provide is not reported missing.
# Write every / as [/\\] so the patterns also match Windows paths.
# No comments inside the block below, because a # there silently becomes part of a pattern.
misc-include-cleaner.IgnoreHeaders: >-
wx[/\\](gtk|gtk1|msw|osx|unix|x11|motif|univ|qt|dfb|generic|private)[/\\].*;
.*[/\\]detail[/\\].*;
.*[/\\]impl[/\\].*;
.*_fwd\.hpp;
python3\.[0-9]+[/\\].*;
libpython[/\\]include[/\\].*;
bits[/\\].*;
corecrt_.*\.h;
__msvc_.*\.hpp;
boost[/\\]multiprecision[/\\]fwd\.hpp;
imconfig\.h;
expat_external\.h;
admesh[/\\]stl\.h;
boost[/\\]thread[/\\](pthread|win32)[/\\].*;
boost[/\\]regex[/\\]v[0-9]+[/\\].*;
curl[/\\](easy|multi|system|urlapi|header|options|websockets|mprintf)\.h;
oneapi[/\\]tbb[/\\].*;
opencv2[/\\]core[/\\]hal[/\\].*;
openssl[/\\]ossl_typ\.h;
libav[a-z]+[/\\].*;
libsw[a-z]+[/\\].*;
glib-2\.0[/\\].*;
gtk-3\.0[/\\].*;
dbus-1\.0[/\\].*;
sys[/\\].*;
unistd\.h;
strings\.h;
fcntl\.h;
termios\.h;
[/\\](um|shared)[/\\].*;
sal\.h;
clipper[/\\]clipper\.hpp;
png(lib)?conf\.h;
mcut[/\\]platform\.h;
boost[/\\]polygon[/\\].*;
lzo(conf|defs)\.h
+2 -1
View File
@@ -206,7 +206,8 @@ known class with a pitfall entry and a fixing commit.
- **macOS:** capture-lost is never sent (a leaked capture freezes all clicks); transient popups hover-
dismiss across a gap — anchor flush and re-verify the cursor; native modals (file/dir dialogs, native
message boxes) and generic progress dialogs re-activate the main window, so re-raise a secondary window
afterwards with a deferred, liveness-guarded `Raise()`; a live menu accelerator consumes the key before
afterwards with a deferred, liveness-guarded `Raise()` — but never `Raise()` a `wxPopupWindow`, which makes
it the key window; a live menu accelerator consumes the key before
any wx key event; Control+click arrives as a right-click.
- **Windows:** `IsDark()` and `wxSYS_COLOUR_*` follow the system app mode, not Orca's theme — use
`dark_mode()`; menu bitmaps follow `check_dark_mode()`; windows are not double-buffered by default in
@@ -57,8 +57,9 @@ Contents: [Rules](#rules) · [1. Choosing the window kind](#1-choosing-the-windo
17. Don't shrink a dropdown below two rows to fit the screen. (§7)
18. Content that needs typing focus or hosts a `wxWebView` uses a frameless `wxDialog` that hides on
deactivation, not a transient popup. (§10)
19. Display-only overlays (HUDs, toasts) use a plain `wxPopupWindow`: it never takes focus and never
auto-dismisses. (§4, §10)
19. Display-only overlays (HUDs, toasts) use a plain `wxPopupWindow`: `Show()` never gives it focus and it
never auto-dismisses. Never `Raise()` any `wxPopupWindow`: `Raise()` is for top-level windows only, and on
macOS it makes the popup the key window. (§4, §5, §10)
20. On MSW, don't `SetFocus()` another window on hover while `wxCurrentPopupWindow` is non-null. (§8)
21. Menu items use `wxID_ANY` and read `item->GetId()`. `wxNewId()` is deprecated. (§13)
22. Set a menu item's bitmap before `Append`. Don't expect icons on check or radio items. Never call
@@ -356,6 +357,13 @@ compensates for (§6).
with `ShowWithoutActivating` → `setHidesOnDeactivate:YES` + `orderFront` (`src/osx/carbon/popupwin.cpp:56-75`,
`nonownedwnd.mm:938-945`). When the app deactivates, Cocoa hides the panel and shows it again on reactivation.
wx never calls `OnDismiss`, and `IsShown()` stays true. This applies to plain `wxPopupWindow` overlays too.
- `Raise()` activates the popup. It is `makeKeyAndOrderFront` (`src/osx/nonownedwnd_osx.cpp:289-295`,
`nonownedwnd.mm:897-899`), and `wxNSPanel` answers `canBecomeKeyWindow` with YES (`nonownedwnd.mm:271`), so
the popup becomes the key window. Keys go to it, and the frame loses key status: `windowDidResignKey` →
`HandleActivated(0, false)` → `wxEVT_ACTIVATE(false)` on the frame (`nonownedwnd.mm:567-576`,
`nonownedwnd_osx.cpp:303-310`). Hiding the key popup gives key back to the frame, which then gets
`wxEVT_ACTIVATE(true)` (observed; AppKit behaviour, not in the wx tree). A popup at `NSPopUpMenuWindowLevel`
is already above its frame, so `Raise()` buys nothing.
- Capture: `Show(true)` makes `m_child` capture the mouse ("Assume that the mouse is outside the popup to begin
with", `popupcmn.cpp:421-426`). `OnIdle` releases the capture while the cursor is inside and re-captures it
outside, but only when the mouse position has changed since the last idle pass. `s_posLast` is a
@@ -739,8 +747,26 @@ created with `wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | wxF
- **Rule:** For overlays that must never take keyboard focus (above a GL surface), use a plain
`wxPopupWindow(top, wxBORDER_NONE)`, not a `wxFrame`.
**Why:** A frame took the X input focus and swallowed every shortcut until the user clicked the canvas. A popup
window cannot take focus. On macOS these overlays hide while the app is inactive (§5).
window does not take focus when shown. On macOS these overlays hide while the app is inactive (§5).
Cite: `CAD/DesignCanvas.cpp` (`m_hud`, `m_status_hud`).
- **Rule:** Never `Raise()` a `wxPopupWindow`. To bring an overlay up, `Show()` it if it is hidden, then
`Move()` it.
**Why:** `Raise()` is documented for top-level windows only (`interface/wx/window.h:3028-3029`), and a popup
derives from `wxNonOwnedWindow`, not `wxTopLevelWindow` (`include/wx/popupwin.h:33`). On macOS it makes the
popup the key window (§5): the popup takes the keys meant for the window below it, and the frame receives
`wxEVT_ACTIVATE(false)`. A frame activate handler that hides the overlay on deactivation and re-places it on
activation then loops: each `Raise()` deactivates the frame, the hide reactivates it, and the re-place raises
again, recursing until the main thread's stack overflows. A popup's `Show()` is `ShowWithoutActivating`
and is safe.
```cpp
// Wrong
if (!overlay->IsShown()) overlay->Show();
overlay->Move(pos);
overlay->Raise();
// Right
if (!overlay->IsShown()) overlay->Show();
overlay->Move(pos);
```
## 11. wxComboCtrl / wxComboPopup
@@ -428,7 +428,8 @@ this function does *not* show it", top-level windows only (`interface/wx/window.
since 3.3 (`docs/changes.txt:144-146`). **[source]** MSW = `::SetForegroundWindow`, subject to the
foreground lock — Windows may only flash the taskbar button (`src/msw/toplevel.cpp:650-655`); GTK =
`gtk_window_present` only if shown (`src/gtk/toplevel.cpp:1301-1310`; during a deferred X11 first show it
already counts as shown); macOS = `makeKeyAndOrderFront` only if shown (`src/osx/nonownedwnd_osx.cpp:289-295`, `src/osx/cocoa/nonownedwnd.mm:896-899`).
already counts as shown); macOS = `makeKeyAndOrderFront` only if shown (`src/osx/nonownedwnd_osx.cpp:289-295`, `src/osx/cocoa/nonownedwnd.mm:897-899`),
which also makes a `wxPopupWindow` the key window — never `Raise()` a popup (`references/popups-menus.md` §5, §10).
**Enable.** `Enable(false)` on a parent disables children logically: `IsEnabled()` reflects ancestors,
`IsThisEnabled()` the window's own flag (`interface/wx/window.h:3060-3070, 3116-3138`). **[source]** On MSW/macOS wx
+1 -1
View File
@@ -45,7 +45,7 @@ on:
schedule:
- cron: '0 17 * * *' # run once a day at 1 AM Singapore time (UTC+8)
- cron: '15 2 * * *' # 10:15 AM Singapore time (UTC+8), when macOS runners are least busy
workflow_dispatch: # allows for manual dispatch
inputs:
-17
View File
@@ -49,28 +49,11 @@ jobs:
key: ${{ inputs.cache-key }}
- uses: lukka/get-cmake@latest
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
with:
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Install CMake 3.31.x (Windows ARM64)
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
# compatibility AND has incomplete ASM_ARMASM linker modules
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
if: runner.os == 'Windows' && inputs.arch == 'arm64'
shell: pwsh
run: |
$ver = "3.31.6"
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
- name: setup dev on Windows
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v3
-17
View File
@@ -54,28 +54,11 @@ jobs:
fail-on-cache-miss: true
- uses: lukka/get-cmake@latest
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
with:
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Install CMake 3.31.x (Windows ARM64)
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
# compatibility AND has incomplete ASM_ARMASM linker modules
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
if: runner.os == 'Windows' && inputs.arch == 'arm64'
shell: pwsh
run: |
$ver = "3.31.6"
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
# Compiler cache. Pushes save it, so main keeps it warm; pull requests
# restore it and discard what they compiled. Objects are keyed on the
# preprocessed source, the compiler and the flags, so a leg only ever
+28
View File
@@ -0,0 +1,28 @@
# Reports the newest push build of main that was not cancelled, for the README badge.
name: Main build status
on:
workflow_run:
workflows: ["Build all"]
types: [completed]
branches: [main]
workflow_dispatch:
permissions:
actions: read
jobs:
status:
if: github.repository == 'OrcaSlicer/OrcaSlicer'
runs-on: ubuntu-latest
steps:
- env:
GH_TOKEN: ${{ github.token }}
run: |
for attempt in 1 2 3; do
conclusion=$(gh api "repos/${{ github.repository }}/actions/workflows/build_all.yml/runs?branch=main&event=push&status=completed&per_page=100" \
--jq '[.workflow_runs[] | select(.conclusion != "cancelled")][0].conclusion') && break
sleep 10
done
echo "Latest finished push build of main: $conclusion"
[ "$conclusion" = success ]
-8
View File
@@ -44,14 +44,6 @@ jobs:
uses: actions/download-artifact@v8
with:
name: ${{ inputs.artifact }}
# run_unit_tests.sh installs the plugin tests' numpy with the uv the build stages
# beside them; the Windows arm64 build bundles none, so put one on PATH there.
- name: Install uv
if: runner.os == 'Windows' && runner.arch == 'ARM64'
uses: astral-sh/setup-uv@v10.2.0
with:
version: "0.11.21" # ORCA_UV_VERSION in CMakeLists.txt
enable-cache: false
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
+16 -2
View File
@@ -135,6 +135,7 @@ set(ORCA_UV_SHA256_aarch64-apple-darwin "1f921d491ba5ffeea774eb04d6681ecee3
set(ORCA_UV_SHA256_x86_64-apple-darwin "f3c8e5708a84b920c18b691214d54d2b0da6b984789caae95d47c95120cb7765")
set(ORCA_UV_SHA256_aarch64-unknown-linux-gnu "88e800834007cc5efd4675f166eb2a51e7e3ad19876d85fa8805a6fb5c922397")
set(ORCA_UV_SHA256_x86_64-unknown-linux-gnu "8c88519b0ef0af9801fcdee419bbb12116bd9e6b18e162ae093c932d8b264050")
set(ORCA_UV_SHA256_aarch64-pc-windows-msvc "74e443f8004022dde57a1bd0d10c097830f9ea8feb4ec927db52cd5d805c2f48")
set(ORCA_UV_SHA256_x86_64-pc-windows-msvc "ace861f360c6de2babedc1607d0f454b6b09a820dbc8182dc15af927e4df9589")
# Version-scoped cache dir so a version bump invalidates the cached binary.
@@ -173,7 +174,10 @@ if(NOT ORCA_BUNDLED_UV_EXECUTABLE)
set(ORCA_UV_ARCH "x86_64-unknown-linux-gnu")
endif()
elseif(_orca_uv_proc MATCHES "aarch64|arm64|ARM64")
if(APPLE)
if(WIN32)
set(ORCA_UV_ARCH "aarch64-pc-windows-msvc")
set(ORCA_UV_EXT "zip")
elseif(APPLE)
set(ORCA_UV_ARCH "aarch64-apple-darwin")
else()
set(ORCA_UV_ARCH "aarch64-unknown-linux-gnu")
@@ -819,7 +823,9 @@ if(SLIC3R_STATIC)
set(TBB_STATIC 1)
endif()
set(TBB_DEBUG 1)
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO RelWithDebInfo Release "")
if ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo" OR MSVC)
set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO RelWithDebInfo Release "")
endif()
find_package(TBB REQUIRED)
# include_directories(SYSTEM ${TBB_INCLUDE_DIRS})
# add_definitions(${TBB_DEFINITIONS})
@@ -1301,6 +1307,14 @@ if (WIN32)
endif()
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
include(InstallRequiredSystemLibraries)
# A missing MSVC runtime is an error because an installer without it cannot start on a clean machine.
set(_orca_runtime_names ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
list(TRANSFORM _orca_runtime_names REPLACE "^.*/" "")
if (MSVC AND (NOT "msvcp140.dll" IN_LIST _orca_runtime_names OR NOT "vcruntime140.dll" IN_LIST _orca_runtime_names))
set(_orca_runtime_error "CMake ${CMAKE_VERSION} did not find msvcp140.dll and vcruntime140.dll for MSVC ${MSVC_VERSION}. Update CMake to a release that supports this Visual Studio.")
message(WARNING "${_orca_runtime_error}")
install(CODE "message(FATAL_ERROR \"${_orca_runtime_error}\")")
endif ()
install (PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ".")
elseif (SLIC3R_FHS)
# CMAKE_INSTALL_FULL_DATAROOTDIR: read-only architecture-independent data root (share)
+1 -1
View File
@@ -6,7 +6,7 @@
<a href="https://trendshift.io/repositories/15552" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15552" alt="OrcaSlicer%2FOrcaSlicer | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
[![GitHub Repo stars](https://img.shields.io/github/stars/OrcaSlicer/OrcaSlicer)](https://github.com/OrcaSlicer/OrcaSlicer/stargazers) [![Build all](https://github.com/OrcaSlicer/OrcaSlicer/actions/workflows/build_all.yml/badge.svg?branch=main)](https://github.com/OrcaSlicer/OrcaSlicer/actions/workflows/build_all.yml)
[![GitHub Repo stars](https://img.shields.io/github/stars/OrcaSlicer/OrcaSlicer)](https://github.com/OrcaSlicer/OrcaSlicer/stargazers) [![Build all](https://img.shields.io/github/actions/workflow/status/OrcaSlicer/OrcaSlicer/main_build_status.yml?label=Build%20all)](https://github.com/OrcaSlicer/OrcaSlicer/actions/workflows/build_all.yml)
OrcaSlicer: an open source Next-Gen Slicing Software for Precision 3D Prints.
Optimize your prints with ultra-fast slicing, intelligent support generation, and seamless printer compatibility—engineered for perfection.
+1 -5
View File
@@ -282,11 +282,7 @@ if "%install_deps%" == "ON" (
call :note_failed "Visual Studio" !errorlevel!
)
REM CMake 4 dropped pre-3.5 policy support and ships incomplete ASM_ARMASM
REM linker modules, which breaks Boost.Context on ARM64. CI pins the same way.
set "cmake_version_flag="
if /I "%arch%" == "ARM64" set "cmake_version_flag=--version 3.31.8"
call :print_and_run winget install !winget_args! --id=Kitware.CMake !cmake_version_flag!
call :print_and_run winget install !winget_args! --id=Kitware.CMake
call :note_failed CMake !errorlevel!
call :print_and_run winget install !winget_args! --id=StrawberryPerl.StrawberryPerl
call :note_failed Perl !errorlevel!
+10
View File
@@ -29,6 +29,15 @@ if(WIN32)
# driven through nmake from a Ninja configure step.
set(_conf_cmd ${CMAKE_COMMAND} -E env ${_openssl_msvc_env} perl Configure )
set(_cross_comp_prefix_line "")
if("${DEPS_ARCH}" STREQUAL "arm64")
# OpenSSL's VC configs pass /Gs0, which puts a __chkstk probe in every
# function. MSVC 14.51 and 14.52 (VS 2026) for ARM64 emit that call
# before the prologue saves LR, so the function returns into itself;
# in tls_parse_all_extensions that breaks every TLS handshake. 14.44
# (VS 2022) is unaffected. Restore cl's default threshold: Configure
# appends /Gs4096 after /Gs0, and the later option wins.
set(_openssl_extra_cflags /Gs4096)
endif()
set(_make_cmd ${CMAKE_COMMAND} -E env ${_openssl_msvc_env} nmake)
set(_install_cmd ${CMAKE_COMMAND} -E env ${_openssl_msvc_env} nmake install_sw )
else()
@@ -71,6 +80,7 @@ ExternalProject_Add(dep_OpenSSL
# prefix stays single-layout.
"--libdir=lib"
${_cross_comp_prefix_line}
${_openssl_extra_cflags}
no-shared
no-asm
no-ssl3-method
+1 -5
View File
@@ -19,11 +19,7 @@ if(Qhull_FOUND)
message(STATUS "Using qhull from system.")
if(SLIC3R_STATIC)
slic3r_remap_configs("Qhull::qhullcpp;Qhull::qhullstatic_r" RelWithDebInfo Release)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
target_link_libraries(qhull INTERFACE Qhull::qhullcpp_d Qhull::qhullstatic_rd)
else()
target_link_libraries(qhull INTERFACE Qhull::qhullcpp Qhull::qhullstatic_r)
endif()
target_link_libraries(qhull INTERFACE Qhull::qhullcpp Qhull::qhullstatic_r)
else()
slic3r_remap_configs("Qhull::qhullcpp;Qhull::qhull_r" RelWithDebInfo Release)
target_link_libraries(qhull INTERFACE Qhull::qhullcpp Qhull::qhull_r)
+121 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Snapmaker",
"version": "02.04.00.16",
"version": "02.04.00.17",
"force_update": "0",
"description": "Snapmaker configurations",
"machine_model_list": [
@@ -1448,6 +1448,10 @@
"name": "Snapmaker PETG HF @U1 0.2 nozzle",
"sub_path": "filament/Snapmaker PETG HF @U1 0.2 nozzle.json"
},
{
"name": "Snapmaker PETG HF @U1 0.4 nozzle",
"sub_path": "filament/Snapmaker PETG HF @U1 0.4 nozzle.json"
},
{
"name": "Snapmaker PETG HF @U1 0.6 nozzle",
"sub_path": "filament/Snapmaker PETG HF @U1 0.6 nozzle.json"
@@ -1920,6 +1924,122 @@
"name": "Snapmaker Breakaway Support For PLA @U1 0.8 nozzle",
"sub_path": "filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json"
},
{
"name": "Generic PETG @U1 0.2 nozzle",
"sub_path": "filament/Generic PETG @U1 0.2 nozzle.json"
},
{
"name": "Generic PETG @U1 0.4 nozzle",
"sub_path": "filament/Generic PETG @U1 0.4 nozzle.json"
},
{
"name": "Generic PETG @U1 0.6 nozzle",
"sub_path": "filament/Generic PETG @U1 0.6 nozzle.json"
},
{
"name": "Generic PETG @U1 0.8 nozzle",
"sub_path": "filament/Generic PETG @U1 0.8 nozzle.json"
},
{
"name": "Generic PETG HF @U1 0.2 nozzle",
"sub_path": "filament/Generic PETG HF @U1 0.2 nozzle.json"
},
{
"name": "Generic PETG HF @U1 0.4 nozzle",
"sub_path": "filament/Generic PETG HF @U1 0.4 nozzle.json"
},
{
"name": "Generic PETG HF @U1 0.6 nozzle",
"sub_path": "filament/Generic PETG HF @U1 0.6 nozzle.json"
},
{
"name": "Generic PETG HF @U1 0.8 nozzle",
"sub_path": "filament/Generic PETG HF @U1 0.8 nozzle.json"
},
{
"name": "Generic PETG-CF @U1 0.4 nozzle",
"sub_path": "filament/Generic PETG-CF @U1 0.4 nozzle.json"
},
{
"name": "Generic PETG-CF @U1 0.6 nozzle",
"sub_path": "filament/Generic PETG-CF @U1 0.6 nozzle.json"
},
{
"name": "Generic PETG-CF @U1 0.8 nozzle",
"sub_path": "filament/Generic PETG-CF @U1 0.8 nozzle.json"
},
{
"name": "Generic PLA @U1 0.2 nozzle",
"sub_path": "filament/Generic PLA @U1 0.2 nozzle.json"
},
{
"name": "Generic PLA @U1 0.4 nozzle",
"sub_path": "filament/Generic PLA @U1 0.4 nozzle.json"
},
{
"name": "Generic PLA @U1 0.6 nozzle",
"sub_path": "filament/Generic PLA @U1 0.6 nozzle.json"
},
{
"name": "Generic PLA @U1 0.8 nozzle",
"sub_path": "filament/Generic PLA @U1 0.8 nozzle.json"
},
{
"name": "Generic PLA High Speed @U1 0.2 nozzle",
"sub_path": "filament/Generic PLA High Speed @U1 0.2 nozzle.json"
},
{
"name": "Generic PLA High Speed @U1 0.4 nozzle",
"sub_path": "filament/Generic PLA High Speed @U1 0.4 nozzle.json"
},
{
"name": "Generic PLA High Speed @U1 0.6 nozzle",
"sub_path": "filament/Generic PLA High Speed @U1 0.6 nozzle.json"
},
{
"name": "Generic PLA High Speed @U1 0.8 nozzle",
"sub_path": "filament/Generic PLA High Speed @U1 0.8 nozzle.json"
},
{
"name": "Generic PLA Silk @U1 0.2 nozzle",
"sub_path": "filament/Generic PLA Silk @U1 0.2 nozzle.json"
},
{
"name": "Generic PLA Silk @U1 0.4 nozzle",
"sub_path": "filament/Generic PLA Silk @U1 0.4 nozzle.json"
},
{
"name": "Generic PLA Silk @U1 0.6 nozzle",
"sub_path": "filament/Generic PLA Silk @U1 0.6 nozzle.json"
},
{
"name": "Generic PLA Silk @U1 0.8 nozzle",
"sub_path": "filament/Generic PLA Silk @U1 0.8 nozzle.json"
},
{
"name": "Generic PLA-CF @U1 0.4 nozzle",
"sub_path": "filament/Generic PLA-CF @U1 0.4 nozzle.json"
},
{
"name": "Generic PLA-CF @U1 0.6 nozzle",
"sub_path": "filament/Generic PLA-CF @U1 0.6 nozzle.json"
},
{
"name": "Generic PLA-CF @U1 0.8 nozzle",
"sub_path": "filament/Generic PLA-CF @U1 0.8 nozzle.json"
},
{
"name": "Generic TPU @U1 0.4 nozzle",
"sub_path": "filament/Generic TPU @U1 0.4 nozzle.json"
},
{
"name": "Generic TPU @U1 0.6 nozzle",
"sub_path": "filament/Generic TPU @U1 0.6 nozzle.json"
},
{
"name": "Generic TPU @U1 0.8 nozzle",
"sub_path": "filament/Generic TPU @U1 0.8 nozzle.json"
},
{
"name": "PolyTerra J1 PLA",
"sub_path": "filament/Polymaker/PolyTerra J1 PLA.json"
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG @U1 0.2 nozzle",
"inherits": "Generic PETG @System",
"from": "system",
"setting_id": "Iw7T4qqDf1fbSAa1",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.2 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"10",
"1"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG @U1 0.4 nozzle",
"inherits": "Generic PETG @System",
"from": "system",
"setting_id": "VHRa4TXU7HPz7Fld",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"10",
"12"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG @U1 0.6 nozzle",
"inherits": "Generic PETG @System",
"from": "system",
"setting_id": "Ubr8v7BTxiQMntVk",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"10",
"12"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG @U1 0.8 nozzle",
"inherits": "Generic PETG @System",
"from": "system",
"setting_id": "ro0mXCLzC5rY95oX",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"10",
"12"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG HF @U1 0.2 nozzle",
"inherits": "Generic PETG HF @System",
"from": "system",
"setting_id": "7yjLWAdcQe4ndo1z",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.2 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"20",
"1"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG HF @U1 0.4 nozzle",
"inherits": "Generic PETG HF @System",
"from": "system",
"setting_id": "XWWLYZWkD9ZNRPeO",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"20",
"16"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG HF @U1 0.6 nozzle",
"inherits": "Generic PETG HF @System",
"from": "system",
"setting_id": "1dj4JdFabSql3cEg",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"20",
"16"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG HF @U1 0.8 nozzle",
"inherits": "Generic PETG HF @System",
"from": "system",
"setting_id": "1LYZ0KG5kQtaOOKt",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"20",
"16"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PETG-CF @U1 0.4 nozzle",
"inherits": "Generic PETG-CF @System",
"from": "system",
"setting_id": "wIKcBM1qLgzLEUJP",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"11.5",
"11"
],
"fan_min_speed": [
"5",
"5"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,23 @@
{
"type": "filament",
"name": "Generic PETG-CF @U1 0.6 nozzle",
"inherits": "Generic PETG-CF @System",
"from": "system",
"setting_id": "FvrnBiPbjSvIF3kN",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"5",
"5"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,23 @@
{
"type": "filament",
"name": "Generic PETG-CF @U1 0.8 nozzle",
"inherits": "Generic PETG-CF @System",
"from": "system",
"setting_id": "SCfvzDgUWkFHmbtP",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"5",
"5"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA @U1 0.2 nozzle",
"inherits": "Generic PLA @System",
"from": "system",
"setting_id": "8pb3tert1D4w0SKP",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.2 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"1.6"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA @U1 0.4 nozzle",
"inherits": "Generic PLA @System",
"from": "system",
"setting_id": "Uilm8oVmZzyxE3ba",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA @U1 0.6 nozzle",
"inherits": "Generic PLA @System",
"from": "system",
"setting_id": "aj4G9OSdgtQPqpkI",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA @U1 0.8 nozzle",
"inherits": "Generic PLA @System",
"from": "system",
"setting_id": "zom29gBgIZmvjFmh",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA High Speed @U1 0.2 nozzle",
"inherits": "Generic PLA High Speed @System",
"from": "system",
"setting_id": "rT8e5f81vwUpwPuq",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.2 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"18",
"2"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA High Speed @U1 0.4 nozzle",
"inherits": "Generic PLA High Speed @System",
"from": "system",
"setting_id": "ZUetX0WveqW8fy6f",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"18",
"18"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA High Speed @U1 0.6 nozzle",
"inherits": "Generic PLA High Speed @System",
"from": "system",
"setting_id": "y2WY6qLA3xKZM1Mm",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"18",
"18"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA High Speed @U1 0.8 nozzle",
"inherits": "Generic PLA High Speed @System",
"from": "system",
"setting_id": "VwXJrdwxvzjlIGal",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"18",
"18"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA Silk @U1 0.2 nozzle",
"inherits": "Generic PLA Silk @System",
"from": "system",
"setting_id": "381SJIDBre8HxHy2",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.2 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"7.5",
"2"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PLA Silk @U1 0.4 nozzle",
"inherits": "Generic PLA Silk @System",
"from": "system",
"setting_id": "Fd1g9OdeM3pUx8f5",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PLA Silk @U1 0.6 nozzle",
"inherits": "Generic PLA Silk @System",
"from": "system",
"setting_id": "8rhmpBFmMj9vVZwG",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic PLA Silk @U1 0.8 nozzle",
"inherits": "Generic PLA Silk @System",
"from": "system",
"setting_id": "Fo7U7GYHZh1aZPLs",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA-CF @U1 0.4 nozzle",
"inherits": "Generic PLA-CF @System",
"from": "system",
"setting_id": "6AWubtDE4PqrKVNJ",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA-CF @U1 0.6 nozzle",
"inherits": "Generic PLA-CF @System",
"from": "system",
"setting_id": "AvM44HgMCkOCnmzY",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,31 @@
{
"type": "filament",
"name": "Generic PLA-CF @U1 0.8 nozzle",
"inherits": "Generic PLA-CF @System",
"from": "system",
"setting_id": "tvYAUvQEbbdBCIg2",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"12"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic TPU @U1 0.4 nozzle",
"inherits": "Generic TPU @System",
"from": "system",
"setting_id": "9d0jRdMgkPMahYL7",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"70",
"70"
],
"fan_max_speed": [
"70",
"70"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic TPU @U1 0.6 nozzle",
"inherits": "Generic TPU @System",
"from": "system",
"setting_id": "LLjEPSU4l09N3Zb8",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.6 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"70",
"70"
],
"fan_max_speed": [
"70",
"70"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -0,0 +1,27 @@
{
"type": "filament",
"name": "Generic TPU @U1 0.8 nozzle",
"inherits": "Generic TPU @System",
"from": "system",
"setting_id": "Wfhd3jLEjSKzCeHE",
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.8 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"70",
"70"
],
"fan_max_speed": [
"70",
"70"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,15 +10,18 @@
"Snapmaker U1 (0.4 nozzle)"
],
"enable_pressure_advance": [
"0",
"0"
],
"filament_max_volumetric_speed": [
"15",
"15"
],
"filament_vendor": [
"Polymaker"
],
"nozzle_temperature_range_high": [
"230",
"230"
],
"temperature_vitrification": [
@@ -29,5 +32,21 @@
],
"textured_plate_temp_initial_layer": [
"65"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -16,12 +16,15 @@
"Polymaker"
],
"nozzle_temperature": [
"230",
"230"
],
"nozzle_temperature_initial_layer": [
"230",
"230"
],
"nozzle_temperature_range_high": [
"230",
"230"
],
"textured_plate_temp": [
@@ -29,5 +32,21 @@
],
"textured_plate_temp_initial_layer": [
"65"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -13,6 +13,7 @@
"1.23"
],
"filament_flow_ratio": [
"0.96",
"0.96"
],
"filament_vendor": [
@@ -29,5 +30,21 @@
],
"textured_plate_temp_initial_layer": [
"65"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,9 +9,27 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"pressure_advance": [
"0.05",
"0.05"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"10",
"10"
],
"fan_max_speed": [
"30",
"30"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,18 +9,35 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_retraction_length": [
"1.0",
"1.0"
],
"filament_z_hop": [
"0.0",
"0.0"
],
"enable_pressure_advance": [
"1",
"1"
],
"pressure_advance": [
"0.05",
"0.05"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"20",
"20"
],
"fan_max_speed": [
"50",
"50"
]
}
@@ -9,18 +9,35 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_retraction_length": [
"1.0",
"1.0"
],
"filament_z_hop": [
"0.0",
"0.0"
],
"enable_pressure_advance": [
"1",
"1"
],
"pressure_advance": [
"0.08",
"0.08"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"10",
"10"
]
}
@@ -9,16 +9,32 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_retraction_length": [
"1.0",
"1.0"
],
"filament_z_hop": [
"0.0",
"0.0"
],
"description": " ",
"enable_pressure_advance": [
"1",
"1"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"10",
"10"
]
}
@@ -9,6 +9,7 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"supertack_plate_temp": [
@@ -18,6 +19,19 @@
"70"
],
"pressure_advance": [
"0.04",
"0.04"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"10",
"10"
],
"fan_max_speed": [
"20",
"20"
]
}
@@ -9,7 +9,24 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"description": " "
"description": " ",
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"10",
"10"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,9 +10,27 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_wipe": [
"0",
"0"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,18 +10,30 @@
"Snapmaker U1 (0.4 nozzle)"
],
"fan_max_speed": [
"100",
"100"
],
"fan_min_speed": [
"100",
"100"
],
"filament_flow_ratio": [
"0.98",
"0.98"
],
"filament_max_volumetric_speed": [
"15",
"15"
],
"slow_down_layer_time": [
"4"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,7 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"supertack_plate_temp": [
@@ -18,6 +19,19 @@
"70"
],
"pressure_advance": [
"0.05",
"0.05"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -9,6 +9,7 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"supertack_plate_temp": [
@@ -18,6 +19,19 @@
"70"
],
"pressure_advance": [
"0.05",
"0.05"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"0",
"0"
],
"fan_max_speed": [
"40",
"40"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,18 +10,30 @@
"Snapmaker U1 (0.4 nozzle)"
],
"fan_max_speed": [
"100",
"100"
],
"fan_min_speed": [
"100",
"100"
],
"filament_flow_ratio": [
"0.98",
"0.98"
],
"filament_max_volumetric_speed": [
"15",
"15"
],
"slow_down_layer_time": [
"4"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -12,6 +12,7 @@
"; filament end gcode \n\n"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_start_gcode": [
@@ -25,6 +26,23 @@
"0"
],
"enable_pressure_advance": [
"0",
"0"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"70",
"70"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -10,6 +10,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,6 +9,7 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"supertack_plate_temp": [
@@ -16,5 +17,17 @@
],
"supertack_plate_temp_initial_layer": [
"70"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"50",
"50"
],
"fan_max_speed": [
"10",
"10"
]
}
@@ -9,6 +9,7 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"supertack_plate_temp": [
@@ -16,5 +17,17 @@
],
"supertack_plate_temp_initial_layer": [
"70"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"50",
"50"
],
"fan_max_speed": [
"10",
"10"
]
}
@@ -9,12 +9,27 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard"
"Direct Drive Standard",
"Direct Drive High Flow"
],
"pressure_advance": [
"0.05",
"0.05"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,6 +9,23 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"100",
"100"
],
"fan_max_speed": [
"100",
"100"
],
"additional_cooling_fan_speed": [
"0",
"0"
]
}
@@ -9,6 +9,59 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_retract_length_toolchange": [
"5",
"5"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_z_hop_types": [
"nil",
"Slope Lift"
],
"filament_multitool_ramming": [
"0",
"1"
],
"nozzle_temperature": [
"260",
"280"
],
"filament_max_volumetric_speed": [
"8",
"22"
],
"fan_max_speed": [
"15",
"60"
],
"additional_cooling_fan_speed": [
"0",
"0"
],
"filament_multitool_ramming_flow": [
"10",
"30"
],
"filament_minimal_purge_on_wipe_tower": [
"0",
"15"
],
"fan_min_speed": [
"15",
"10"
],
"filament_multitool_ramming_volume": [
"0",
"5"
],
"nozzle_temperature_initial_layer": [
"260",
"280"
],
"filament_retraction_length": [
"0.6",
"0.2"
]
}
@@ -22,33 +22,43 @@
"2"
],
"filament_deretraction_speed": [
"55",
"55"
],
"filament_max_volumetric_speed": [
"31",
"31"
],
"filament_retract_when_changing_layer": [
"0",
"0"
],
"filament_retraction_length": [
"0.5",
"0.5"
],
"filament_z_hop": [
"0",
"0"
],
"filament_retraction_speed": [
"55",
"55"
],
"filament_wipe": [
"0",
"0"
],
"nozzle_temperature": [
"250",
"250"
],
"fan_max_speed": [
"50",
"50"
],
"fan_min_speed": [
"35",
"35"
],
"slow_down_min_speed": [
@@ -59,5 +69,9 @@
],
"default_filament_colour": [
""
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
]
}
@@ -9,6 +9,59 @@
"Snapmaker U1 (0.4 nozzle)"
],
"filament_retract_length_toolchange": [
"5",
"5"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_z_hop_types": [
"nil",
"Slope Lift"
],
"filament_multitool_ramming": [
"0",
"1"
],
"nozzle_temperature": [
"255",
"280"
],
"filament_max_volumetric_speed": [
"8",
"22"
],
"fan_max_speed": [
"15",
"25"
],
"additional_cooling_fan_speed": [
"0",
"0"
],
"pressure_advance": [
"0.04",
"0.02"
],
"filament_multitool_ramming_flow": [
"10",
"20"
],
"filament_minimal_purge_on_wipe_tower": [
"0",
"15"
],
"fan_min_speed": [
"0",
"10"
],
"filament_multitool_ramming_volume": [
"0",
"10"
],
"nozzle_temperature_initial_layer": [
"255",
"280"
]
}
@@ -13,24 +13,30 @@
"PLA"
],
"enable_pressure_advance": [
"0",
"0"
],
"additional_cooling_fan_speed": [
"70",
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70",
"70"
],
"during_print_exhaust_fan_speed": [
"70",
"70"
],
"fan_max_speed": [
"30",
"30"
],
"fan_min_speed": [
"20",
"20"
],
"filament_cost": [
@@ -40,36 +46,46 @@
"1.3"
],
"filament_deretraction_speed": [
"nil",
"nil"
],
"filament_flow_ratio": [
"1",
"1"
],
"filament_max_volumetric_speed": [
"0.5",
"0.5"
],
"filament_retract_length_toolchange": [
"10",
"10"
],
"filament_retraction_length": [
"nil",
"nil"
],
"filament_retraction_speed": [
"nil",
"nil"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"240",
"240"
],
"nozzle_temperature_initial_layer": [
"240",
"240"
],
"nozzle_temperature_range_low": [
"190",
"190"
],
"pressure_advance": [
"0.2",
"0.2"
],
"textured_plate_temp": [
@@ -85,15 +101,19 @@
"28"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_multitool_ramming": [
"1",
"1"
],
"filament_multitool_ramming_flow": [
"5",
"5"
],
"filament_multitool_ramming_volume": [
"5",
"5"
],
"filament_unloading_speed": [
@@ -101,5 +121,9 @@
],
"filament_unloading_speed_start": [
"100"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
]
}
@@ -13,6 +13,7 @@
"PLA"
],
"enable_pressure_advance": [
"0",
"0"
],
"filament_cost": [
@@ -22,21 +23,26 @@
"1.3"
],
"filament_flow_ratio": [
"0.95",
"0.95"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"210",
"210"
],
"nozzle_temperature_initial_layer": [
"210",
"210"
],
"nozzle_temperature_range_low": [
"190",
"190"
],
"pressure_advance": [
"0.02",
"0.02"
],
"textured_plate_temp": [
@@ -46,36 +52,46 @@
"65"
],
"additional_cooling_fan_speed": [
"70",
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70",
"70"
],
"during_print_exhaust_fan_speed": [
"70",
"70"
],
"fan_min_speed": [
"100",
"100"
],
"filament_deretraction_speed": [
"nil",
"nil"
],
"filament_retract_length_toolchange": [
"10",
"10"
],
"filament_retraction_length": [
"nil",
"nil"
],
"filament_retraction_minimum_travel": [
"1",
"1"
],
"filament_retraction_speed": [
"nil",
"nil"
],
"filament_wipe_distance": [
"2",
"2"
],
"filament_cooling_moves": [
@@ -85,15 +101,19 @@
"28"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_multitool_ramming": [
"1",
"1"
],
"filament_multitool_ramming_flow": [
"20",
"20"
],
"filament_multitool_ramming_volume": [
"5",
"5"
],
"filament_unloading_speed": [
@@ -101,5 +121,13 @@
],
"filament_unloading_speed_start": [
"100"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_max_speed": [
"100",
"100"
]
}
@@ -13,18 +13,22 @@
"PLA"
],
"enable_pressure_advance": [
"0",
"0"
],
"additional_cooling_fan_speed": [
"70",
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70",
"70"
],
"during_print_exhaust_fan_speed": [
"70",
"70"
],
"filament_cost": [
@@ -34,33 +38,42 @@
"1.3"
],
"filament_deretraction_speed": [
"nil",
"nil"
],
"filament_flow_ratio": [
"0.93",
"0.93"
],
"filament_retract_length_toolchange": [
"10",
"10"
],
"filament_retraction_length": [
"3",
"3"
],
"filament_retraction_speed": [
"nil",
"nil"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"210",
"210"
],
"nozzle_temperature_initial_layer": [
"210",
"210"
],
"nozzle_temperature_range_low": [
"190",
"190"
],
"pressure_advance": [
"0.015",
"0.015"
],
"textured_plate_temp_initial_layer": [
@@ -73,15 +86,19 @@
"28"
],
"filament_minimal_purge_on_wipe_tower": [
"15",
"15"
],
"filament_multitool_ramming": [
"1",
"1"
],
"filament_multitool_ramming_flow": [
"20",
"20"
],
"filament_multitool_ramming_volume": [
"5",
"5"
],
"filament_unloading_speed": [
@@ -91,9 +108,18 @@
"100"
],
"fan_min_speed": [
"100",
"100"
],
"textured_plate_temp": [
"65"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_max_speed": [
"100",
"100"
]
}
@@ -13,54 +13,68 @@
"PLA"
],
"enable_pressure_advance": [
"1",
"1"
],
"additional_cooling_fan_speed": [
"70",
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70",
"70"
],
"during_print_exhaust_fan_speed": [
"70",
"70"
],
"fan_min_speed": [
"100",
"100"
],
"filament_cooling_moves": [
"4"
],
"filament_deretraction_speed": [
"nil",
"nil"
],
"filament_flow_ratio": [
"1",
"1"
],
"filament_loading_speed": [
"28"
],
"filament_minimal_purge_on_wipe_tower": [
"20",
"20"
],
"filament_multitool_ramming": [
"1",
"1"
],
"filament_multitool_ramming_flow": [
"20",
"20"
],
"filament_multitool_ramming_volume": [
"5",
"5"
],
"filament_retract_length_toolchange": [
"5",
"5"
],
"filament_retraction_length": [
"1",
"1"
],
"filament_retraction_speed": [
"nil",
"nil"
],
"filament_unloading_speed": [
@@ -73,15 +87,19 @@
"65"
],
"nozzle_temperature": [
"210",
"210"
],
"nozzle_temperature_initial_layer": [
"210",
"210"
],
"nozzle_temperature_range_low": [
"190",
"190"
],
"pressure_advance": [
"0.03",
"0.03"
],
"textured_plate_temp": [
@@ -89,5 +107,17 @@
],
"textured_plate_temp_initial_layer": [
"65"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"filament_max_volumetric_speed": [
"12",
"18"
],
"fan_max_speed": [
"100",
"100"
]
}
@@ -7,5 +7,17 @@
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"15",
"15"
],
"fan_max_speed": [
"50",
"50"
]
}
@@ -7,5 +7,17 @@
"instantiation": "true",
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"filament_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow"
],
"fan_min_speed": [
"26",
"26"
],
"fan_max_speed": [
"50",
"50"
]
}

Some files were not shown because too many files have changed in this diff Show More