Compare commits

...

335 Commits

Author SHA1 Message Date
Rodrigo Faselli
cfc2e9b62a Fix "Access Violation" (#12704) (#12856)
Co-authored-by: Kiss Lorand <50251547+kisslorand@users.noreply.github.com>
2026-04-05 15:10:09 -03:00
Rodrigo Faselli
aa51d1965f Don't steal focus from text inputs on mouse (#12834)
In GLCanvas3D::on_mouse, avoid calling SetFocus when the currently focused window is a text input control (wxTextCtrl, wxComboBox or wxSpinCtrl). This prevents deselection bugs when the mouse leaves the window while a text control is focused. Also commented out explicit wx text-control includes near the top of the file.

Only TextCtrl needed

cleaning

Removed unused wxWidgets header includes.

Update GLCanvas3D.cpp

Co-authored-by: yw4z <yw4z@outlook.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-04-05 13:53:41 +03:00
Kiss Lorand
362ddec743 Fix overhang reverse threshold being ignored (#13061) 2026-04-04 16:56:42 -03:00
Eldenroot
d7dbe6a0ed UX: Convert 'Change type' to submenu with checkmarks (#12205)
* UX: Convert 'Change type' to submenu with checkmarks

* Update GUI_ObjectList.cpp

* Update GUI_ObjectList.hpp

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-04-04 04:31:26 +03:00
Heiko Liebscher
e4a207891d Fix typo in German translation: change "SETP Dateien" to "STEP Dateien" (#13100) 2026-04-04 02:45:12 +03:00
Olof Larsson
d1a7802637 fix: update stl and texture for Creality K2 (#13098)
* fix: update stl and texture for k2

* fix: bump profile version
2026-04-03 15:32:00 +03:00
SoftFever
c948d87102 Fix flush_multiplier type mismatch: use ConfigOptionFloats instead of ConfigOptionFloat (#13062) 2026-04-01 14:43:12 +08:00
SoftFever
0a762dfede udpate flatpak metainfo for flathub build 2026-03-30 21:48:09 +08:00
Eyal Levin
44faf142f9 Fix: generic locale fallback on all platforms when language is unavai… (#12948)
Fix: generic locale fallback on all platforms when language is unavailable

  Move the locale fallback chain out of the #ifdef __linux__ block so it
  applies on macOS and Windows too. Add a base-language fallback step that
  strips the region code (e.g. en_IL -> en) before trying the full
  fallback chain (current locale, system, best, en_US, en_UK).

  Previously, if wxLocale::IsAvailable() failed on non-Linux, the app
  would show an error and exit. Now it gracefully falls back to a working
  locale.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-30 19:26:00 +08:00
Noisyfox
239253ecb1 Fix title bar resize grabber on Windows (#13020)
Make sure the title control passes all mouse events to its parent
2026-03-30 19:18:56 +08:00
SoftFever
a475e35730 Fix non-ASCII path corruption on Windows using from_path() helper (#13036) 2026-03-30 14:51:45 +08:00
SoftFever
8248b06337 Updated wxWidgets to 3.3.2 (#12941)
# Description

Upgrade wxWidgets to the latest 3.3.2.

The wxWidgets team mentioned that while 3.3 is not labeled “stable,” it
is production-ready. It isn’t labeled “stable” only because it may
introduce breaking ABI/API changes. As Linux distros are moving to
Wayland, and given the number of fixes in wxWidgets to improve Wayland
support, it’s worth upgrading to 3.3.2 instead of staying on 3.2.x.

Note:
I didn’t switch the dark mode implementation to wxWidgets for two
reasons:
1. To avoid broader changes, since the current dark mode works well with
wxWidgets 3.3.2.
2. wxWidgets dark mode doesn’t support changing themes on the fly; it
requires an application restart for the change to take effect.



# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-30 13:54:45 +08:00
SoftFever
b9952b39ad Fix slice/print panel background to use theme-transformed color 2026-03-30 12:29:14 +08:00
SoftFever
094dfc14bd Fix missing commas in vendor string arrays causing silent concatenation 2026-03-30 12:29:14 +08:00
SoftFever
9563f6500b Fix missing commas in vendor string arrays causing silent concatenation 2026-03-30 12:26:59 +08:00
SoftFever
d62aa42e61 Fix macOS WebView script-handler cleanup after wxWidgets 3.3 upgrade
Commit ed88cbe removed `new WebViewWebKit` on macOS because wx 3.3
dropped the no-arg wxWebViewWebKit constructor, falling through to
wxWebView::New(). That bypassed the WebViewWebKit destructor that calls
RemoveScriptMessageHandler("wx"), reintroducing the WebKit teardown bug
the subclass was added to fix.

Restore the macOS-specific subclass path by adding a constructor that
forwards to the wx 3.3 wxWebViewConfiguration-based ctor.
2026-03-30 11:53:48 +08:00
mosfet80
c3f52bb3ca Add Opensuse distro (#12976)
Add Opensuse distro
2026-03-30 10:36:28 +08:00
Mitchell Mashburn
c036ce059a Add re:3D printer profiles (#12935)
# Description

* Add re:3D printer profiles.

# Screenshots/Recordings/Graphs

<img width="404" height="275" alt="image" src="https://github.com/user-attachments/assets/b7a747a8-4d1a-440f-a214-4a98619e6723" />


## Tests

* Tested build on Linux Ubuntu.
* Ran profile validation script:

<img width="439" height="74" alt="image" src="https://github.com/user-attachments/assets/ad10e0a0-de9b-45c6-a40e-6cacb6e7b779" />
2026-03-30 10:36:28 +08:00
mosfet80
5d432f48b9 Add Opensuse distro (#12976)
Add Opensuse distro
2026-03-30 08:06:31 +08:00
SoftFever
7d7f26ed69 fix a bug that switching from dark mode to light mode didn't work on Windows 2026-03-29 23:51:17 +08:00
Mitchell Mashburn
ebcefdf037 Add re:3D printer profiles (#12935)
# Description

* Add re:3D printer profiles.

# Screenshots/Recordings/Graphs

<img width="404" height="275" alt="image" src="https://github.com/user-attachments/assets/b7a747a8-4d1a-440f-a214-4a98619e6723" />


## Tests

* Tested build on Linux Ubuntu.
* Ran profile validation script:

<img width="439" height="74" alt="image" src="https://github.com/user-attachments/assets/ad10e0a0-de9b-45c6-a40e-6cacb6e7b779" />
2026-03-29 18:17:36 +08:00
SoftFever
eefdabcd98 Fix maximized window not filling desktop after wxWidgets 3.3.2 upgrade
wxWidgets 3.3.2 changed MSWGetStyle to add WS_CAPTION when
wxMINIMIZE_BOX/wxMAXIMIZE_BOX/wxCLOSE_BOX is set. This caused
DefWindowProc to subtract the caption height in WM_NCCALCSIZE for
maximized windows, shrinking the client area and creating a gap
above the taskbar.

Fix by handling WM_NCCALCSIZE for the maximized case explicitly
(strip only border overshoot, not caption) and removing the now
unnecessary wxEVT_MAXIMIZE workaround.
2026-03-29 01:08:06 +08:00
SoftFever
c06a0223a7 Fix 3D canvas blank area during window resize after wxWidgets 3.3.2 upgrade 2026-03-28 15:46:34 +08:00
SoftFever
779a36bf8b fix a regresion that the "search in preset" popup dialog will dismiss itself when move the cursor out of the dialog.
The regression is casued by 382cf57166 ("Fix hotkeys blocked in Prepare view when notification is shown")
2026-03-28 13:04:20 +08:00
SoftFever
bf397a0632 fix an issue that white boarder is visible for context/file menu on Windows when dark mode is enabled 2026-03-28 00:54:59 +08:00
SoftFever
c8a53a219a fix split button separator color in light mode on macOS 2026-03-27 17:23:44 +08:00
SoftFever
88eb2ab8df reapply wxALIGN_CENTER_VERTICAL 2026-03-27 14:53:56 +08:00
SoftFever
c443129f34 fix build errors on latest xcode 2026-03-27 14:32:40 +08:00
Simonas
97d5bf89d0 Bump webkit2gtk version for Fedora builds (#12844)
The webkit2gtk-4.0 API version will no longer be built. Packages that depend on it will fail to build from source and eventually be retired. 

https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version
2026-03-27 14:32:40 +08:00
dependabot[bot]
52d5210f7e Bump actions/upload-artifact from 6 to 7 (#12544)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:32:40 +08:00
dependabot[bot]
25fed7553e Bump actions/cache from 4 to 5 (#12545)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:32:40 +08:00
dependabot[bot]
8baf2f622e Bump actions/download-artifact from 7 to 8 (#12543)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:32:40 +08:00
SoftFever
78a186ff1a disable lfs as we don't use it anymore 2026-03-27 14:32:40 +08:00
SoftFever
f45cea6145 bump version to 2.4.0-dev 2026-03-27 14:32:40 +08:00
SoftFever
f72de427cb fix build errors on latest xcode 2026-03-27 14:32:02 +08:00
Simonas
b59985593a Bump webkit2gtk version for Fedora builds (#12844)
The webkit2gtk-4.0 API version will no longer be built. Packages that depend on it will fail to build from source and eventually be retired. 

https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version
2026-03-27 11:50:24 +08:00
dependabot[bot]
325a63ef8d Bump actions/upload-artifact from 6 to 7 (#12544)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 11:47:54 +08:00
dependabot[bot]
5c6ca282f7 Bump actions/cache from 4 to 5 (#12545)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 11:47:36 +08:00
dependabot[bot]
94c7c1beeb Bump actions/download-artifact from 7 to 8 (#12543)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 11:47:00 +08:00
SoftFever
b6184a540e reduce the sidebar's width a bit 2026-03-27 00:27:39 +08:00
SoftFever
8961883eab fix flatpak build errors 2026-03-26 18:20:53 +08:00
SoftFever
6d7b16c725 disable lfs as we don't use it anymore 2026-03-26 17:16:20 +08:00
SoftFever
a8f7745d61 bump version to 2.4.0-dev 2026-03-26 16:36:11 +08:00
SoftFever
fe55b260b4 suppress: gtk_style_context_add_provider: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed 2026-03-26 16:22:07 +08:00
SoftFever
6148ba16b3 Fix GTK negative content width warnings for bitmap toggle buttons
On Linux/GTK, CheckBox, RadioBox, and SwitchButton set their size to
exactly the bitmap size (18x18 or 16x16), but GTK's internal CSS padding
requires additional space, resulting in negative content width warnings.
Use GetBestSize() on GTK to account for theme padding.
2026-03-26 16:05:58 +08:00
SoftFever
9493c5d222 fix flatpak 2026-03-26 14:14:39 +08:00
SoftFever
e70fe6c1df fix Windows build errors 2026-03-26 14:10:10 +08:00
SoftFever
fd47370c5c fix Windows build errors - wip 2026-03-26 10:17:19 +08:00
SoftFever
67fb0c8c83 tidy up a bit 2026-03-25 16:05:50 +08:00
SoftFever
80c958d98b Remove macOS text position fudge factors (no longer needed with wx 3.3) 2026-03-25 15:58:39 +08:00
SoftFever
f77e7d833b Copy wx/private headers after wxWidgets install
wxWidgets 3.3 cmake install doesn't include private headers.
OrcaSlicer uses some private headers for accessibility support.
Add a post-install step to copy the private headers directory.
2026-03-25 12:49:35 +08:00
SoftFever
7658cf9076 Disable wxWidgets bundled NanoSVG to avoid duplicate symbols
wxWidgets 3.3 bundles its own NanoSVG in bmpsvg.cpp, conflicting with
OrcaSlicer's bundled copy which includes the nsvgRasterizeXY extension.
Set wxUSE_NANOSVG=OFF in deps cmake to use OrcaSlicer's version only.
2026-03-25 12:44:02 +08:00
SoftFever
ed88cbe3f5 Use wxWebView::New() factory on macOS (direct ctor removed in wx 3.3) 2026-03-25 12:44:02 +08:00
SoftFever
11a80a1e1c Disambiguate state_handler.attach() call in Button.cpp 2026-03-25 11:35:25 +08:00
SoftFever
2b3328c2b2 Fix char + wstring concat in Search.cpp tooltip builder 2026-03-25 11:34:45 +08:00
SoftFever
1765d296a8 Fix wxArrayString ctor, wstring concat, and wxList::Node for wx 3.3
- Plater: use Add() instead of wxArrayString(size_t, wxString) ctor
- Search: change sep from std::wstring to wxString for concatenation
- SendMultiMachinePage: replace wxList::Node* with compatibility_iterator
  (Node type removed in wx 3.3 with wxUSE_STD_CONTAINERS=ON)
2026-03-25 11:33:50 +08:00
SoftFever
7cbd9bfb3c Fix ambiguous overload, wxScopedCharBuffer comparison, and wxArrayString ctor
- PhysicalPrinterDialog: disambiguate set_values() call with explicit
  std::vector<std::string> (wxArrayString now also matches initializer list)
- Preferences: use ToStdString() instead of mb_str() for std::string comparison
- Plater: use wxString::FromUTF8() for wxArrayString constructor argument
2026-03-25 11:31:44 +08:00
SoftFever
0af0327d60 Fix narrow/wide string concat in SyncAmsInfoDialog.cpp
Same pattern as earlier fixes: const char[] + std::wstring fails in
wx 3.3 where wxUSE_STD_CONTAINERS=ON. Wrap with wxString().
2026-03-25 11:30:21 +08:00
SoftFever
7ea69199fd Fix wxDynamicCast on wxComboPopup for wxWidgets 3.3
wxComboPopup no longer inherits from wxObject in wx 3.3, so
wxDynamicCast (which casts through wxObject) fails. Use dynamic_cast
directly instead.
2026-03-25 11:29:40 +08:00
SoftFever
7de8fbb0da Remove _wx_opengl_override from wxWidgets dep cmake
wxWidgets 3.3 handles OpenGL discovery natively via imported targets
(OpenGL::GL, OpenGL::OpenGL). The override was corrupting wx-config
output with malformed "-framework OpenGL" entries, causing
FindwxWidgets.cmake to fail.
2026-03-25 11:28:23 +08:00
SoftFever
d9c229ca35 Fix narrow/wide string concatenation errors for wxWidgets 3.3
In wx 3.3 with wxUSE_STD_CONTAINERS=ON, wxString is backed by
std::wstring, so direct concatenation of const char[] with
std::wstring or wxUniCharRef fails. Fix by splitting compound
concatenations into separate += operations on wxString, or by
wrapping the left operand in wxString() to use its operator+.

Files fixed:
- AuxiliaryDataViewModel.cpp: split "\\" + wxString/wstring chains
- AboutDialog.cpp: split std::string("\n") + wxUniCharRef
- Auxiliary.cpp: wrap dir.wstring() in wxString(), split "/" + wstring
2026-03-25 11:28:00 +08:00
SoftFever
5f365b5c6b Fix BitmapComboBox for wxWidgets 3.3 (wxBitmap -> wxBitmapBundle)
In wxWidgets 3.3, wxBitmapComboBoxBase::OnAddBitmap changed its
parameter from const wxBitmap& to const wxBitmapBundle&, and m_bitmaps
was replaced by m_bitmapbundles. Update OnAddBitmap signature and
OnDrawItem to use wxBitmapBundle, extracting wxBitmap via
GetBitmap(GetDefaultSize()) where needed.
2026-03-25 11:26:32 +08:00
SoftFever
85390a9da0 Guard wxToolTip::GetToolTipCtrl() for wx 3.3 and add explicit wx/utils.h includes
- Wrap GetToolTipCtrl() call in GUI_App.cpp with #if wxVERSION_NUMBER < 3300
  guard, as this API may not be accessible in wxWidgets 3.3. The dark tooltip
  theming is cosmetic and non-critical.

- Add explicit #include <wx/utils.h> to 7 source files that use functions from
  that header (wxGetMousePosition, wxLaunchDefaultBrowser, wxGetDisplaySize,
  wxBell) but relied on transitive includes. This preempts breakage from
  wxWidgets 3.3 reducing transitive includes.

Files with wx/utils.h added: BBLTopbar.cpp, CreatePresetsDialog.cpp,
CameraPopup.cpp, GLCanvas3D.cpp, GCodeViewer.cpp, GUI_ObjectList.cpp,
FilamentMapPanel.cpp.

Skipped BindDialog.cpp and FilamentPickerDialog.cpp as they already include
wx/wx.h which provides wx/utils.h transitively.

Part of wxWidgets 3.1.5 -> 3.3.2 upgrade.
2026-03-24 21:02:37 +08:00
SoftFever
ba867cc534 Add Show() before Raise() calls for wxWidgets 3.3 compatibility
In wxWidgets 3.3, wxWindow::Raise() no longer implies Show(). Add
explicit Show() before Raise() in two event handlers that activate the
main frame from another instance (load model, start download), and swap
the Show/Raise order in bring_instance_forward() so Show() precedes
Raise().
2026-03-24 20:57:58 +08:00
SoftFever
026b105dcb Remove wxTRANSPARENT_WINDOW flag for wxWidgets 3.3 compatibility
wxTRANSPARENT_WINDOW is removed in wxWidgets 3.3. Remove all 3
occurrences in MainFrame.cpp:

- ResizeEdgePanel constructor: already uses wxBG_STYLE_TRANSPARENT
  via SetBackgroundStyle(), so the flag was redundant
- slice_panel and print_panel: drop the style parameter entirely
  (defaults to 0)
2026-03-24 20:56:04 +08:00
SoftFever
1065d85dbc Fix wxEXPAND | wxALIGN_* sizer flag conflicts for wxWidgets 3.2+
wxWidgets 3.2+ asserts on invalid sizer flag combinations where
wxEXPAND (which fills the entire space in the secondary direction)
is combined with wxALIGN_* flags (which are meaningless when expanding).
Remove the conflicting wxALIGN_* flags from all 112 occurrences across
21 files, keeping wxEXPAND and any non-conflicting flags intact.
2026-03-24 20:50:44 +08:00
SoftFever
024d5dc64d Remove wxCHECK_VERSION(3,1,x) guards and legacy wxinit.h macros
Since we now target wxWidgets 3.3, all wxCHECK_VERSION(3,1,N) checks
are always true. Remove the guards keeping only the true branches:

- I18N.hpp: Remove version guard around _wxGetTranslation_ctx macro
- ExtraRenderers.hpp, GUI_App.hpp: Simplify SUPPORTS_MARKUP to check
  only wxUSE_MARKUP (version check always true)
- ConfigWizard.cpp: Remove manual wxArrayInt comparison fallback
- SendSystemInfoDialog.cpp: Simplify display scaling guard to _WIN32 only
- GUI_Utils.cpp: Remove IsDark() fallback using luma approximation
- wxinit.h: Remove legacy wxEVT_BUTTON and wxEVT_HTML_LINK_CLICKED
  compat macros (these event names exist natively in wx 3.3)
2026-03-24 20:44:32 +08:00
SoftFever
5be5185d17 Remove OSX 10.9.5 crash workaround (dead code with wxWidgets 3.3+)
wxWidgets 3.3 requires macOS 10.11+, making the 10.9.5-specific crash
workaround in OpenGLManager impossible to trigger. Remove:
- OSInfo struct and s_os_info static member from the header
- OS version recording in init_glcontext()
- Conditional wxGLContext deletion in the destructor (now always deletes)
- Unused #include <wx/platinfo.h>

The MacDarkMode.hpp include is retained as mac_max_scaling_factor() is
still used by GLInfo::get_max_tex_size().
2026-03-24 20:39:45 +08:00
SoftFever
8dcc3cd20d Remove const_cast workarounds for wxExecute (wxWidgets 3.1+)
wxWidgets 3.1+ accepts const argv arrays (const wchar_t* const* and
const char* const*) in wxExecute(), making the const_casts unnecessary.
Remove all 14 const_cast<char**>/const_cast<wchar_t**> wrappers around
wxExecute calls and their associated FIXME comments across GUI.cpp,
NotificationManager.cpp, and Downloader.cpp.
2026-03-24 20:34:32 +08:00
SoftFever
5f13f0893c Remove remaining pre-3.1.3 DPI dead code in GUI_Utils.hpp
Remove scale_win_font() and scale_controls_fonts() functions along
with the #if !wxVERSION_EQUAL_OR_GREATER_THAN(3,1,3) guard in
rescale(). Since wx >= 3.1.3 is now guaranteed, this code could
never execute and the functions had no other callers.
2026-03-24 20:30:40 +08:00
SoftFever
195d22d5cb Remove pre-wxWidgets 3.1.3 DPI fallback code
Since we now target wxWidgets 3.3, the custom DPI change event
workaround (DpiChangedEvent, EVT_DPI_CHANGED_SLICER,
register_win32_dpi_event) is dead code. wxWidgets 3.1.3+ provides
native wxEVT_DPI_CHANGED / wxDPIChangedEvent which is already
wired up in the "true" branch of the version guards.

Removes:
- DpiChangedEvent struct and EVT_DPI_CHANGED_SLICER declaration/definition
- register_win32_dpi_event() function and its call site
- All associated #if !wxVERSION_EQUAL_OR_GREATER_THAN(3,1,3) guards
2026-03-24 20:28:12 +08:00
SoftFever
2d7e26292b Update build system for wxWidgets 3.1.5 → 3.3.2 upgrade
- deps/wxWidgets/wxWidgets.cmake: Add GIT_TAG v3.3.2 to track the
  correct branch; remove -DwxUSE_UNICODE=ON (unicode-only in 3.3,
  option removed)
- src/CMakeLists.txt: Bump find_package minimum version from 3.0/3.1
  to 3.3; remove SLIC3R_WX_STABLE conditional (3.0 no longer supported)
- CMakeLists.txt: Remove SLIC3R_WX_STABLE option definition
- scripts/flatpak/com.orcaslicer.OrcaSlicer.yml: Update wxWidgets
  source URL to v3.3.2 branch archive; remove sha256 (placeholder
  TODO); remove -DwxUSE_UNICODE=ON
2026-03-24 20:22:19 +08:00
SoftFever
f4224e9780 tidy up and bump profile version (#12889)
* tidy up and bump profile version

* fix error

* tidy up

* fix

* tide up more

* fix errors

* fix more errors
2026-03-23 01:17:34 +08:00
Ezzeldin Ahmed
3b7b3f4cf2 Add Anet A8 Plus (#12792)
* Add Anet A8 Plus support because the folks in OrcaSlicer didn't

* Fix the structure also import the orca_printer file to get the process

* asdsadasd
2026-03-23 00:03:39 +08:00
liutang
fa744e39b9 Set exclude objects to enabled by default to support dynamic MBL (#12869)
Set exclude objects to enabled by default to support dynamic mesh bed leveling.
2026-03-23 00:02:14 +08:00
liuyingmo
3d4aff5ea8 Optimised for the Artillery M1 Pro printer (#12885)
* Optimised for the Artillery M1 Pro printer

* tidy up

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-22 23:58:34 +08:00
SoftFever
73be083ac5 update flatpak app id and add migration code (#12879)
* update flatpak app id and add migration code

* tweak some text
2026-03-22 23:49:23 +08:00
Heiko Liebscher
4f87e52379 New de translation (#12875)
* Aktualisiere deutsche Übersetzungen in der i18n-Datei für bessere Klarheit und Konsistenz

* Update German localization for OrcaSlicer

- Improved translations for various messages, ensuring clarity and consistency.
- Corrected terminology for technical terms such as "flow ratio" and "emboss text object."
- Adjusted phrasing for better readability and grammatical accuracy.
- Removed redundant or unclear phrases to streamline user experience.
- Added new entries for warnings and notifications related to printer operations.

* typo
2026-03-22 15:18:20 +08:00
Rodrigo Faselli
d24985abb2 Attempt to fix OrcaSlicer_zh_TW.po (#12867) 2026-03-20 21:59:29 -03:00
SoftFever
1681f96a59 fixed an issue that some translations are not used 2026-03-20 23:47:37 +08:00
SoftFever
4689dd810e update locale and complete some missing translations for some language(AI) 2026-03-20 23:37:19 +08:00
Alessio Tudisco
d99c3ec0aa feat: add winget_updater github action (#12807)
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-20 22:11:39 +08:00
Kiss Lorand
c02ccecc3a Follow-up for PR #12773 (#12800)
Adapt language files to PR #12773

- Language files are adapated for the new msgid from PR #12773
- changes from PR #12773 applied to APPLE build also
2026-03-20 22:04:46 +08:00
Jakub Hencl
53b261c066 Update error Czech translations in OrcaSlicer_cs.po (#12641)
Thanks
2026-03-20 21:16:04 +08:00
GlauTech
e3fda68a6e Update TURKISH translations (#12838)
* Update TURKISH translations

* Update TURKISH translations
2026-03-20 21:12:19 +08:00
SoftFever
be5741d822 Security fix: path traversal in 3MF import (#12860) 2026-03-20 17:11:22 +08:00
SoftFever
f201997d9e Feature/cicd selfhost2 (#12840)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-20 00:31:37 +08:00
SoftFever
cbdfc770ab simplify mac download 2026-03-19 23:55:33 +08:00
SoftFever
a9c5748d30 print build time 2026-03-19 23:17:03 +08:00
SoftFever
acbe5c708e respect clang flag for all deps 2026-03-19 23:14:47 +08:00
SoftFever
7dcba3f537 use different cache key for linux clang 2026-03-19 22:09:02 +08:00
SoftFever
594e4a297d use clang and lld 2026-03-19 21:59:37 +08:00
SoftFever
5c20da796c skip flatpak 2026-03-19 18:52:28 +08:00
SoftFever
6828111a82 clean 2026-03-19 18:44:07 +08:00
SoftFever
8dabfa8829 tweak 2026-03-19 18:34:45 +08:00
SoftFever
8c5063881a skip flatpak arm64 for self hosted runners 2026-03-19 18:27:47 +08:00
SoftFever
70e076151b Merge branch 'main' into feature/cicd_selfhost2 2026-03-19 18:19:48 +08:00
SoftFever
e00fcbb44e update cmake to 4.3.x (#12842)
# Description

update cmake to 4.3.x version for better support of new build tools

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-19 18:17:33 +08:00
SoftFever
838605690b minor change 2026-03-19 16:08:44 +08:00
SoftFever
1c237ba5b3 CMake: Ignore /opt/local (MacPorts). (#12813)
# Description

We want to ignore everything on this path so that the build uses its own
dependencies rather than picking up, e.g., the wrong version of libpng
just because that's what someone has in their MacPorts.

This fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/10460

## Tests

I confirmed that this patch fixes the build (`./build_release_macos.sh
-x`).
2026-03-19 16:04:42 +08:00
SoftFever
4ffe260228 update cmake to 4.3.x 2026-03-19 15:48:32 +08:00
SoftFever
2fe3d80a81 fix errors 2026-03-19 12:25:00 +08:00
SoftFever
5afb30d7dd Revert "Revert "Extend self-hosted runner support to all platforms" (#12827)"
This reverts commit f2eab542a4, reversing
changes made to 7565b279ad.
2026-03-19 11:58:39 +08:00
SoftFever
89172bc710 Merge branch 'main' into ignore-macports 2026-03-19 11:05:15 +08:00
Kevin J. Lynagh
882af4d1fe CMake: Accept ignored prefixes from build_release_macos.sh
Defaults to ignore:

/opt/local    (MacPorts)
/opt/homebrew (Homebrew on ARM)
/opt/local    (Homebrew on x86)

We want to ignore these paths so any dependencies they might contain don't interfere with the build.

This fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/10460
2026-03-18 21:51:54 +01:00
SoftFever
f2eab542a4 Revert "Extend self-hosted runner support to all platforms" (#12827)
Reverts OrcaSlicer/OrcaSlicer#12825
2026-03-19 00:07:25 +08:00
SoftFever
dc90dda976 Revert "Extend self-hosted runner support to all platforms" 2026-03-19 00:07:12 +08:00
SoftFever
7565b279ad Extend self-hosted runner support to all platforms (#12825)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-19 00:02:53 +08:00
SoftFever
504b9be774 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-19 00:02:11 +08:00
SoftFever
2868255658 Extend self-hosted runner support to all platforms 2026-03-18 23:42:21 +08:00
SoftFever
4c57492bdb Add FILL3D PLA Turbo filament profile (#12801)
Add FILL3D PLA Turbo filament profile to OrcaFilamentLibrary.

Vendor: FILL3D
Type: PLA
Nozzle temp: 230°C (first layer) / 235°C
Bed temp: 55°C (hot plate)
Pressure advance: 0.036 (adaptive PA enabled)
Max volumetric speed: 32 mm³/s
Validated with OrcaSlicer_profile_validator.exe and
orca_extra_profile_check.py — no errors
2026-03-18 18:18:59 +08:00
SoftFever
1bac6a58a8 Update HU language (#12795)
Update HU language after the adjustments of #12681.
2026-03-18 18:16:27 +08:00
SoftFever
f059472c0a Feature/optimize warnings (#12821)
# Description

tweak some wipe tower related warnings to reduce confusion

1. Skip flushing volume validation for multi-tool printers
2. check precise_z_height and enable_prime_tower conflicts in print
validate

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-18 17:52:35 +08:00
SoftFever
991464ed95 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 17:52:24 +08:00
SoftFever
eb5082f37b Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 17:51:29 +08:00
SoftFever
70b9bedf94 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-18 17:50:39 +08:00
SoftFever
13b08385c8 check precise_z_height and enable_prime_tower conflicts in print validate 2026-03-18 16:59:20 +08:00
SoftFever
bcd89aba5e Skip flushing volume validation for multi-tool printers
Flushing volumes only apply to SEMM and BBL printers. Multi-tool printers don't perform filament purging between tool changes, so the zero-volume warning was being incorrectly triggered.
2026-03-18 15:39:07 +08:00
SoftFever
7b075524ef Fixes in Russian localization (#12734)
- Added workarounds for line breaking
(https://github.com/OrcaSlicer/OrcaSlicer/pull/12702#issuecomment-4034006735)
- Fixed filament/nozzle incompatibility notification
- Optimized some places with shorter variants
- Updated tooltips
- Some more updates
2026-03-18 14:51:42 +08:00
SoftFever
54f8d332bc Feature/fix wipetower pos issues (#12820)
# Description

Reverted PR #12191 and #12777 and added new fixes. This also resolves an
issue where, in some cases, the sliced result was immediately
invalidated after the first slicing.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-18 14:46:19 +08:00
SoftFever
62ffbfd33d revist fixes for wipe tower pos issues 2026-03-18 14:42:40 +08:00
SoftFever
6399d88015 Revert "Fix wipe tower loaded outside of plate boundaries (#12191)"
This reverts commit e14e186bb7.
2026-03-17 19:16:09 +08:00
SoftFever
c8070b67d5 Revert "Fix wipe tower placed outside bed boundary on first slice (#12777)"
This reverts commit 494601eea5, reversing
changes made to d28e964e04.
2026-03-17 19:14:50 +08:00
SoftFever
c224b3f94b Ensure slice / print buttons visible on frame (Accordion tabs) (#12772)
Fixes
https://github.com/OrcaSlicer/OrcaSlicer/issues/12723#issuecomment-4033223440

## NOTES
• Icons easy to discern so its not an issue
• User will explore this feature while resizing window so its ok as well
• maybe will add a tooltip while button compacted on future

## PROBLEM
print / slice buttons not visible in frame and not usable. bbl machines
uses much more tabs and issue gets worse

**regular printer on minimum window size**
<img width="766" height="96" alt="Screenshot-20260315014602"
src="https://github.com/user-attachments/assets/965e72d2-64d6-462e-abbf-f3c355783da0"
/>

**bbl printer on minimum size**
<img width="764" height="93" alt="Screenshot-20260315014708"
src="https://github.com/user-attachments/assets/1250afd1-45c3-42d9-bda3-334671ec7dc5"
/>

## SOLUTION
tabs uses only icons to reduce space usage dynamically depends on
available space

**regular printer**

![explorer_PoszqO4wyw](https://github.com/user-attachments/assets/848331ee-0206-41a8-961f-e65e68ca5f56)

**bbl printer with multi device enabled**

![explorer_WznxxHVgIJ](https://github.com/user-attachments/assets/3e3a0414-71c2-436d-be3d-d1f380d5d299)

**worst case scenario without issue. (minimum window width + multi
device + Export sliced plate button)**
<img width="772" height="97" alt="Screenshot-20260315015216"
src="https://github.com/user-attachments/assets/8b21d693-4119-4f91-b16d-d734e4633b87"
/>

**adapts automatically to used layout**

![firefox_W80FMQaHee](https://github.com/user-attachments/assets/3f9eed31-2f8d-4763-8911-bf765175d30d)
2026-03-17 18:34:59 +08:00
SoftFever
9e32aec938 Support longer project names on title and fix window buttons not visible on minimum window size (#12730)
fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12723

tested on windows, ubuntu

## CHANGES
• Created a painted control because AddLabel method has fixed size.
**new control expands and uses all available space**
• removed invisible publish button to get perfect center. i assume this
feature already not in use on orca

## WINDOW BUTTONS NOT VISIBLE ON MINIMUM WINDOW WIDTH
• This issue only exist on windows

**Before**- causes window buttons not fitting to frame. 
**After** - all fits to frame
<img width="759" height="203" alt="Screenshot-20260311141345"
src="https://github.com/user-attachments/assets/99da00ea-48f9-449b-9dd0-0bd023e041d8"
/>

## ADDS SUPPORT FOR LONGER PROJECT NAMES
**Before** - title not showing all name because it has a fixed size with
300px
**After** - shows all name because it uses all available space
<img width="1263" height="216" alt="Screenshot-20260311141612"
src="https://github.com/user-attachments/assets/f0b4d16a-882f-46c0-8918-d0b8a7c34007"
/>

## ELLIPSIZES LONG NAMES WHEN REQURIED
**Before** - method was static

![explorer_6M2Lqu7Sla](https://github.com/user-attachments/assets/b0aedc44-6bb8-4b25-a4e3-8e3fea25fd44)

**After** - supports longer names and ellipsizes end dynamically

![explorer_l92JNSeq3v](https://github.com/user-attachments/assets/aa0b3ff1-c155-46b5-abc8-cf8167db18a7)

## FIXES THIN TITLEBAR ON LINUX
Left windows Right one Linux
**Before - Linux titlebar uses less height for titlebar**
<img width="806" height="84" alt="Screenshot-20260312013547"
src="https://github.com/user-attachments/assets/3507016c-e46b-4fb1-86de-29978ee48e2b"
/>
**After- Heights almost matches**
<img width="819" height="110" alt="Screenshot-20260312013531"
src="https://github.com/user-attachments/assets/3b28d32b-d054-406e-85bc-939609ba1aef"
/>
2026-03-17 18:28:00 +08:00
Felix14_v2
8df73358d0 Merge branch 'OrcaSlicer:main' into main 2026-03-17 01:36:52 +03:00
Felix14_v2
4d7dee77df Update OrcaSlicer_ru.po 2026-03-17 01:36:15 +03:00
julianramirezarango-source
bcf40ddab5 Add FILL3D PLA Turbo filament profile to OrcaFilamentLibrary 2026-03-16 10:41:08 -05:00
yw4z
3eac0a86e4 update 2026-03-16 15:10:36 +03:00
SoftFever
0f25137853 Add wipe_tower_type printer setting (#12781)
# Description

Previously, wipe tower behavior was determined by the printer model.  
In this PR, we introduced an option that lets users choose which wipe
tower type to use.
BBL printers remain hardcoded to Type 1. Qidi profiles default to Type
1.

This may be useful for users with a filament-cutter-based system
(similar to Bambu printers) who want to use similar configurations—they
can select the "Type 1" wipe tower. That said, Wipe Tower Type 2 is
generally recommended for all printers, whether they use a typical MMU
setup, a filament cutter, or a tool changer.

# Screenshots/Recordings/Graphs

<img width="1307" height="854" alt="Screenshot 2026-03-15 at 22 27 29"
src="https://github.com/user-attachments/assets/04bc5c42-88c4-458a-a933-a22f8408b6a8"
/>

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-16 18:57:02 +08:00
SoftFever
ba18b67e12 small tweak 2026-03-16 18:56:17 +08:00
kisslorand
e27ba72c33 Update HU language
Update HU language after the adjustments of #12681.
2026-03-16 11:49:41 +02:00
SoftFever
55ddf158e5 Merge branch 'main' into feature/wipetower-option 2026-03-16 17:41:00 +08:00
SoftFever
d7a3091b70 Flow ratio instead flow rate calib (#12773)
# Description

Point II - 5 of #12684


# Screenshots/Recordings/Graphs

<img width="558" height="265" alt="image"
src="https://github.com/user-attachments/assets/fe8212b2-3062-4f21-8912-a9aaa87b3df1"
/>
2026-03-16 17:39:55 +08:00
SoftFever
ccbaca0033 Fix PR comment posting for fork contributors by splitting into two workflows
The check_profiles workflow used gh pr comment directly, which fails for
  fork PRs due to read-only GITHUB_TOKEN. Split into artifact upload +
  workflow_run pattern so comments post with proper write permissions.
2026-03-16 15:52:22 +08:00
SoftFever
14c40d7120 Fix height calculation for preferred filament area height (#12660)
## FIXES
• Corrects area height on windows while using 125% and 175% scaling. it
shows scrollbar when it incorrectly set. i have used directly size of
combobox this time instead static number

## IMPROVEMENTS
• Removes restriction for restarting orca when setting changed
2026-03-16 15:06:14 +08:00
SoftFever
d0d0440b8e Fix plurals on some GUI strings (#12681)
# Description
Some terms were singular and should be plural, and vice-versa.
2026-03-16 14:53:51 +08:00
SoftFever
0fef28ee28 Fix Flatpak missing locale support (#12751)
# Description

Add the localization/ directory to the Flatpak source list so
run_gettext.sh can compile .po files into .mo translations.

Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script to
preserve the user's language settings while still preventing
decimal-separator parsing issues.
fixes #12714

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-16 14:38:54 +08:00
SoftFever
bfeccc7a55 small tweak of the script to support Mac 2026-03-16 14:36:35 +08:00
SoftFever
8168d0a4e0 fix crash when opening preference dialog 2026-03-16 00:18:39 +08:00
SoftFever
0cc4b442e3 Fix Flatpak missing locale support (#12714)
Add the localization/ directory to the Flatpak source list so
run_gettext.sh can compile .po files into .mo translations.

Replace LC_ALL=C.UTF-8 with LC_NUMERIC=C in the entrypoint script
to preserve the user's language settings while still preventing
decimal-separator parsing issues.
2026-03-15 23:32:28 +08:00
SoftFever
112bec6bd2 Fix calibration dialogs not sizes properly on linux (#12752)
Fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12737 and
confirmed in here
https://github.com/OrcaSlicer/OrcaSlicer/issues/12737#issuecomment-4050896603

Only occurs on X11. tested on mint

`v_sizer->SetSizeHints(this);` was the real fix

issue starts to appear when dialog height higher then 280px
Removed height limitation on creating dialog as solution since dialogs
already resized with its content

• also fixes clipped text on bottom
|BEFORE|AFTER|
|---|---|
|<img width="330" height="456" alt="Screenshot-20260312203213"
src="https://github.com/user-attachments/assets/c6b0e577-f1e1-4da7-ba02-808d157ebee6"
/>|<img width="342" height="443" alt="Screenshot-20260313010726"
src="https://github.com/user-attachments/assets/a78605fa-ed75-4b42-a484-a2376d1b2982"
/>|

|BEFORE|AFTER|
|---|---|
|<img width="263" height="365" alt="Screenshot-20260312204651"
src="https://github.com/user-attachments/assets/ff04692e-3fd6-4fe1-bb6e-90594599c459"
/>|<img width="261" height="393" alt="Screenshot-20260313011644"
src="https://github.com/user-attachments/assets/be01936d-753a-4b95-99cb-c16228f8706f"
/>|
2026-03-15 23:21:51 +08:00
SoftFever
1a7f5d4f98 Fix infinite loop with zero top solid infill density (#12762)
# Description

This pull request fixes the bug where Orca Slicer enters an infinite
loop when a density of zero is introduced for the top layer solid infill

# Screenshots/Recordings/Graphs

<img width="2560" height="1392" alt="image"
src="https://github.com/user-attachments/assets/5bf5c220-a398-483f-9f69-63dadbc888af"
/>

Note: For bottom solid infill, this is not a problem because the minimum
density is 10%.
2026-03-15 23:20:47 +08:00
SoftFever
13c267936a Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (#12767)
Makes sure all non-bbl printers go through the same filament reordering
code so custom filament sequence is properly handled, while skipping the
filament grouping part by mapping all filaments to group 0.

This is the same method used by BBL printer to calculate the optimal
filament grouping so should be robust.

Fix #12449
Fix #12766
2026-03-15 23:19:47 +08:00
SoftFever
7f9ddda01d feat: swap the mmu detection to prefer the more generic moonraker database (#12764)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->

Happy Hare now writes mmu lane data to the moonraker db similar to AFC,
so we can normalize to the one implementation. For now, i've just
re-ordered it so that the moonraker db is checked first. I want this
because I've actually updated the happy hare data to include more data
than we had access to via the "mmu" object. For happy hare we now have
access to vendor name, which we can eventually use to further fine tune
the auto-matched filament preset.

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
_n/a_

## Tests

<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
2026-03-15 23:09:10 +08:00
SoftFever
9b9950c4c2 Disable arc fitting for Qidi processes (#12761)
# Description

Qidi printers run Klipper and we don't want arc fitting enabled for
these.

This is wrongly enabled in QidiStudio as well, likely where these
profiles originated.
2026-03-15 23:06:18 +08:00
SoftFever
c16c7de908 Merge branch 'main' into disable_arc_fitting 2026-03-15 23:05:37 +08:00
SoftFever
fe75c2c0fa Allow cancel during beam interlocking generation (#12759)
With certain irrational beam interlocking parameters, it will take a few
minutes to complete the interlocking generation; even worse:
cancellation doesn't work once it started.

This PR fix that by adding cancellation check inside some of the most
time consuming loops so it can be stopped ASAP.

Also cherry picked a sanity check from
https://github.com/bambulab/BambuStudio/pull/9925 by @mpaperno. Thanks!

The following test project (which was modified from the upper PR by
@mpaperno) took me more than 90s to complete with 0.1mm beam width:

[Interloack-Test2.orca.3mf.txt](https://github.com/user-attachments/files/25975637/Interloack-Test2.orca.3mf.txt)
2026-03-15 23:03:04 +08:00
SoftFever
a54c00e9ee chore: translate comment for ignoring truncating casts warning (#12757)
# Description

I was just building the project and checked out the CMakeLists to see if
there are some optional features I can disable to speed up compilation
and tripped on this chinese comment.
This just translates the comment to English for consistency
2026-03-15 23:01:26 +08:00
SoftFever
458882647f Add the filament id for the box of the Generic PC (#12756)
Add the filament id for the box of the Generic PC
2026-03-15 23:00:16 +08:00
SoftFever
d58d9be07b Add wipe_tower_type printer setting to replace vendor-based wipe tower selection
Previously, wipe tower behavior was determined by checking if the printer
  was a QIDI vendor. This introduces a configurable enum (Type 1 / Type 2)
  so any printer can select its wipe tower implementation. BBL printers
  remain hardcoded to Type 1. Qidi profiles default to Type 1.
2026-03-15 22:19:53 +08:00
SoftFever
494601eea5 Fix wipe tower placed outside bed boundary on first slice (#12777)
# Description

The wipe tower config position (wipe_tower_x/y) could be outside the plate boundary (e.g. default y=250 on a 200mm printer). No constraint was applied at slice time, so the tower was generated out-of-bounds.

issue reported in #12731

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
2026-03-15 17:41:07 +08:00
SoftFever
65d4be8cea Merge branch 'main' into fix/wipe-tower-outside-boundary-on-first-slice 2026-03-15 17:40:56 +08:00
SoftFever
ad0cce4c38 Fix wipe tower placed outside bed boundary on first slice
The wipe tower config position (wipe_tower_x/y) could be outside the
plate boundary (e.g. default y=250 on a 200mm printer). No constraint
was applied at slice time, so the tower was generated out-of-bounds.
2026-03-15 17:38:44 +08:00
Branden Cash
189bcafee0 feat: swap the mmu detection to prefer the more generic moonraker database
Happy Hare now writes mmu lane data to the moonraker db similar to AFC, so we can normalize to the one implementation. For now, i've just re-ordered it so that the moonraker db is checked first. I want this because I've actually updated the happy hare data to include more data than we had access to via the "mmu" object. For happy hare we now have access to vendor name, which we can eventually use to further fine tune the auto-matched filament preset.
2026-03-14 20:20:27 -07:00
RF47
43285a493c Flow ratio instead flow rate calib 2026-03-14 22:17:04 -03:00
yw4z
1f18be9ff2 fix compacting when app open with home tab 2026-03-15 04:16:45 +03:00
yw4z
20f8d478aa init 2026-03-15 01:42:28 +03:00
Noisyfox
478e8bda16 Fix non-bbl printer filament grouping by mapping all filaments/tools to group 0 (#12449, #12766) 2026-03-14 23:30:37 +08:00
TheLegendTubaGuy
3d1e96e74d Merge branch 'main' into disable_arc_fitting 2026-03-14 07:48:15 -05:00
SoftFever
d28e964e04 Fix crash in DiffPresetDialog::update_tree() on preset selection change (#12765)
std::map::at() throws std::out_of_range when option.category or
"Basic information" is not present in the tab's category_icon_map,
crashing the app. Replace with a safe find()-based helper lambda
that falls back to an empty string (no icon) when the key is missing.
2026-03-14 20:47:56 +08:00
RF47
1528c2cf3b Skip top surfaces with non-positive density
Add a guard that skips creating fill params for top surfaces when the configured density is less than or equal to zero. This avoids generating surface fills for zero/negative densities and prevents unnecessary processing or potential errors when top surface density is disabled.
2026-03-13 22:44:31 -03:00
TheLegendTubaGuy
ccf1442c8c Disable arc fitting for Qidi processes
Qidi printers run Klipper and we don't want arc fitting enabled for
these.
2026-03-13 16:38:03 -05:00
Noisyfox
485917461a Allow cancellation during beam interlocking generation 2026-03-13 23:33:19 +08:00
Bent Hillerkus
3c0f5c7e59 chore: translate comment for ignoring truncating casts warning 2026-03-13 16:05:46 +01:00
Max Paperno
1aed7dfe5b FIX: Divide by zero exception in InterlockingGenerator when invalid configuration parameters are used. (fixes https://github.com/bambulab/BambuStudio/issues/9910 )
(cherry picked from commit cdd60ab71f8a3895fcb1345b2ccc2f2f472bf968)
2026-03-13 21:13:29 +08:00
HYzd766
5a3523325d Add the filament id for the box of the Generic PC 2026-03-13 15:15:26 +08:00
HYzd766
e3d70933f9 Merge branch 'OrcaSlicer:main' into A2 2026-03-13 15:02:27 +08:00
Felix14_v2
71aeb3aaf5 Update OrcaSlicer_ru.po 2026-03-13 02:49:22 +03:00
yw4z
7399b5d9e6 Update calib_dlg.cpp 2026-03-12 23:58:23 +03:00
yw4z
3a98890e53 Update calib_dlg.cpp 2026-03-12 20:45:30 +03:00
SoftFever
845baaefbb Feature/fix crash on linux when clicking assemble feature (#12739)
* fix crash on Linux when clicking Assemble gizmo

* some qol changes for dev

* Revert "some qol changes for dev"

This reverts commit ffe321370b.
2026-03-12 19:38:36 +08:00
Niccolo
40bf2157e3 Fix CLI segfault (SIGSEGV) when using --info, --slice, or --export-3mf (#12719)
In CLI mode, PartPlateList is constructed with a NULL plater pointer
(OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(),
it unconditionally executes render data preparation code that
dereferences the null plater through calls like generate_print_polygon()
→ wxGetApp().plater(), causing a segmentation fault (exit code 139).

This adds a null check on m_plater in PartPlate::set_shape() to skip
the render-only code block that generates logo triangles, print/exclude
polygons, gridlines, icon vertices, and plate name textures.

These rendering operations are not needed in CLI mode and this change
has no impact on GUI mode where m_plater is always valid.
2026-03-12 19:36:45 +08:00
TheLegendTubaGuy
e6dfd2d8cb Update CC2 Profiles from elegoo slicer (#12215) 2026-03-11 23:57:40 +08:00
yw4z
e1d844f71a Merge branch 'main' into titlebar-buttons-fix 2026-03-11 17:16:09 +03:00
Rodrigo Faselli
25740788e7 fix flatpak build (#12738)
remove duplicated code
2026-03-11 11:00:01 -03:00
yw4z
aabbc41527 Update BBLTopbar.cpp 2026-03-11 15:36:19 +03:00
HYzd766
909aea3150 Update Qidi X-Max 4 0.4 nozzle.json (#12716)
Update Qidi X-Max 4 0.4 nozzle.json
2026-03-11 20:17:41 +08:00
yw4z
ef2f7ca22a simplify solution 2026-03-11 15:14:21 +03:00
yw4z
42fa706655 Merge branch 'main' into titlebar-buttons-fix 2026-03-11 14:48:05 +03:00
yw4z
e5a1020fcb fix shaky text while resizing 2026-03-11 14:43:27 +03:00
Felix14_v2
c06d596a0d Update OrcaSlicer_ru.po 2026-03-11 10:17:04 +03:00
SoftFever
322b44d84a Feature/flatpak clang llvm21 (#12727)
* Fix GIT_COMMIT_HASH not set in Flatpak builds

The env var check was gated inside the .git directory check, so
Flatpak builds (which exclude .git from the sandbox) always fell
back to "0000000". Lift the env var check to top level and inject
the commit hash into the Flatpak manifest via build-options.env.

* Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension

- Add org.freedesktop.Sdk.Extension.llvm21
- Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability

* fix build errors and improving build speed for flatpak

* fxi more build errors

* Update error messages for GNOME Platform and SDK versions
2026-03-11 14:59:29 +08:00
SoftFever
2ebc0aa6c1 Fix GIT_COMMIT_HASH not set in Flatpak builds (#12725)
The env var check was gated inside the .git directory check, so
Flatpak builds (which exclude .git from the sandbox) always fell
back to "0000000". Lift the env var check to top level and inject
the commit hash into the Flatpak manifest via build-options.env.
2026-03-11 13:32:29 +08:00
yw4z
eab3139268 update 2026-03-11 06:56:03 +03:00
Felix14_v2
e36fe7606b Fixes 2026-03-11 06:55:19 +03:00
yw4z
d48585c715 Update BBLTopbar.cpp 2026-03-10 22:16:06 +03:00
Felix14_v2
2f8e1c7864 Merge branch 'main' of https://github.com/Felix14-v2/OrcaSlicer 2026-03-10 22:02:08 +03:00
VOLUMIC
fbe2aeaa2e VOLUMIC profils update (#12721)
* VOLUMIC profils updates

* Delete resources/profiles/Volumic/EXO42 IDRE_cover.png

* VOLUMIC profils updates

* VOLUMIC profils updates

* Profils bug fix

* VOLUMIC profils updates

* Fix SC2 Stage 2

* Update Volumic.json
2026-03-11 00:15:09 +08:00
yw4z
5f54e694c4 Calibration dialog Fixes (incorrect validators, scaling issues, UI refinements) (#12702)
* Update calib_dlg.cpp

* match validators

* update

* add missing linebreak

* update
2026-03-10 23:56:17 +08:00
Valerii Bokhan
b919148c66 Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (#12710)
Fixes point 4 of #12684
2026-03-10 23:56:00 +08:00
yw4z
c9bf6f088a Remove duplicate items from actual speed plot (#12711)
* init

* update
2026-03-10 23:54:44 +08:00
HYzd766
9034a74454 Update Qidi X-Max 4 0.4 nozzle.json 2026-03-10 16:22:52 +08:00
SoftFever
382cf57166 QoL: Fix hotkeys blocked in Prepare view when notification is shown (#12715)
Fix hotkeys blocked in Prepare view when notification is shown

Restore SetFocus() in the GLCanvas3D mouse-entering handler so the
canvas reclaims wxWidget keyboard focus whenever the mouse enters it
(provided the main window is active). Without this, clicking a sidebar
control or a UI update triggered by slicing could leave the canvas
without focus, causing hotkeys like Tab to stop working until the user
clicked the canvas or dismissed the notification.
2026-03-10 15:57:15 +08:00
tome9111991
97da125d62 FIX: hidden Line Type Linux (#12364)
Fix(GCodeViewer): Resolve z-fighting for wipe, seam, and retract markers using shader depth bias

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-10 15:28:21 +08:00
HYzd766
535241264c Merge branch 'OrcaSlicer:main' into A2 2026-03-10 14:51:34 +08:00
Valerii Bokhan
e6f3eb7fe9 QoL: Default values in tooltips for Percent, FloatOrPercent, String and Bool options (#12508)
QoL: Default values in tooltips for Percent, String and Bool options
2026-03-10 10:21:10 +08:00
yw4z
a16f8e2cc0 Merge branch 'main' into fix-height-calculation 2026-03-09 20:02:23 +03:00
SoftFever
f310bebf9a Fix an issue that on Linux the project name or model file name was not displayed in titlebar (#12706)
* optimize resize feature on Linux

* fix the black screen issue on app startup on Linux

* Fixed an issue that Filament Grouping dialog always popup on Linux

* Fix an issue that on Linux the project name or model file name was not displayed in title bar
2026-03-10 01:02:18 +08:00
SoftFever
6049c6e234 Optimize linux experience (#12705)
* optimize resize feature on Linux

* fix the black screen issue on app startup on Linux

* Fixed an issue that Filament Grouping dialog always popup on Linux
2026-03-10 00:55:09 +08:00
Rodrigo Faselli
80db8edbfb Fix errors OrcaSlicer_cs.po (#12701) 2026-03-09 11:41:27 -03:00
yw4z
e22c8b6648 update 2026-03-09 17:09:09 +03:00
gaaat98
3ad9e242c8 Add support for esthetic filament sub-types in Snapmaker Printer Agent (#12699)
# Description
Esthetic filaments such as wood-infused, matte and marble filaments will now be handled by the Snapmaker printer agent so that they could be matched to more appropriate print profiles instead of generic PLA.
2026-03-09 20:53:51 +08:00
SoftFever
db7507b84e Some QoL tweaks (#12700)
* 1. Calculate `FilamentTempType` based on `filament_info.json`, with a fallback to the temperature range.
2. Clean up some strings.

* Update src/slic3r/GUI/ObjColorDialog.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-09 20:52:12 +08:00
Alexandre Folle de Menezes
d7ea6daae2 Standardize strings (#12665)
* Standardize view actions

* Standardize the term for "first layer"

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-09 20:36:36 +08:00
Olof Larsson
3842511068 fix: round flush_volumes_matrix values to integers (#12672)
When flush_multiplier is applied to flush_volumes_matrix values, the
result can be a decimal (e.g., 272 * 1.3 = 353.6). Some printer firmware
metadata parsers (notably Creality K2) crash when parsing decimal values
in flush_volumes_matrix, causing prints to get stuck at "File selected".

This fix rounds the multiplied values to integers, ensuring compatibility
with firmware that expects integer values in this field.

Fixes compatibility with Creality K2 and potentially other Klipper-based
printers that parse the CONFIG_BLOCK metadata.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-09 20:35:56 +08:00
Kiss Lorand
ac5c93ef2d Update HU language (#12686)
HU language update
2026-03-09 19:52:01 +08:00
Olof Larsson
2a7a3d0cd7 feat: add Creality K2 Support (#12662)
* feat: add K2 support

* fix: remove k2 pro from k2 process json

* fix: set correct start gcodes for the nozzles
2026-03-09 19:48:43 +08:00
Schildkroet
d222d804ff Added eSUN Filament PLA Basic, Marble, Matte (#12657)
# Description

<!--
> Please provide a summary of the changes made in this PR. Include details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
  > * Are there any breaking changes or dependencies that need to be considered?
-->
Added eSUN Filament PLA Basic, Marble, Matte to Orca Filament Library

<img width="811" height="331" alt="image" src="https://github.com/user-attachments/assets/5cda8b59-cd44-4e32-bae0-d08d2346dd39" />


## Tests

<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
```
./OrcaSlicer_profile_validator -v eSUN
Total loaded vendors: 1
Validation completed successfully
```
2026-03-09 19:43:12 +08:00
Alexandre Folle de Menezes
439ce085fd Translate more pt-BR strings (#12664)
# Description
Ditto
2026-03-09 19:37:26 +08:00
Jakub Hencl
e9a69a0982 Update translate CZ (#12640)
Translation added

# Description

<!--
> Please provide a summary of the changes made in this PR. Include details such as:
  > * What issue does this PR address or fix?
  > * What new features or enhancements does this PR introduce?
  > * Are there any breaking changes or dependencies that need to be considered?
-->

# Screenshots/Recordings/Graphs

<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->

## Tests

<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
2026-03-09 19:33:23 +08:00
Derrick
d09699cf34 Fix conversion to wxstring (#12698)
Fix obj import dialog encoding for non ASCII letters by making the correct conversion to wxstring

JIRA-137
2026-03-09 19:32:11 +08:00
Derrick
1bcc239a9a Added check for esc key to close dialog (#12697)
Added wx event for esc to close dialog for filament grouping dialog

JIRA-139
2026-03-09 19:31:27 +08:00
Kiss Lorand
afc2fe5428 Remove leftover Bambu warning caption from dialogs (#12696)
### Description
A couple of warning dialogs still used a caption containing "**BambuStudio warning**". It is a leftover from the original BambuStudio codebase.

### This PR
- removes the explicit caption so the dialogs use the standard application warning title instead.

### Result
- removes the remaining Bambu reference while keeping the visible behavior consistent with the rest of the UI.
- addresses point 1. of  "New ports from Bambu Studio" section from #12684

### Screenshots

- **Before:**
<img width="1352" height="277" alt="image" src="https://github.com/user-attachments/assets/d107acaa-f159-496a-b14e-93cd149bf355" />

- **After:**
<img width="1356" height="278" alt="image" src="https://github.com/user-attachments/assets/e111b5b3-9b3e-4b13-b20d-f98e5173ea16" />
2026-03-09 19:30:07 +08:00
Derrick
8b15ec44f0 Fix flushing windows dialog able to move around using trackpad and added esc to close dialog (#12694)
Added entry to wipingdialog.html css to prevent it from being overscrollable and its position fixed.
Added escape button to close dialog event on both javascript and webview events

JIRA-136
2026-03-09 19:28:59 +08:00
Sabriel-Koh
ca85d8ade3 Disable filament grouping button logic when when not Bambu H2D (#12693)
# Description
When using the Bambu H2D, users can use Filament Grouping, a button found next to the bed preview. When not on a H2D profile, the button is hidden. However, it remained usable, and clicking an empty space below all the buttons causes the dialog to appear.

This PR fixes that by adding a check before the button is registered.

Addresses point 9 (focusing on the 2nd bullet) in #12684 

## Tests
Tried to click on the empty area right below the column of buttons (see the below images)
Made sure to have the H2D profile loaded as well, and checked that the dialog still opens for that printer.

H2D active
<img width="1635" height="949" alt="image" src="https://github.com/user-attachments/assets/da6fb03b-e3c8-4504-ac60-b96ecc6347dc" />
Area to click for the invisible button
<img width="935" height="788" alt="image" src="https://github.com/user-attachments/assets/1f001bcf-0224-4922-b5bf-47a95820e536" />
2026-03-09 18:24:24 +08:00
Derrick
e8b2fa3a32 Fix zoom button tooltip width miscalculation (#12692)
wx strings to be converted to utf-8 before doing width calculation for consistency.
 
 JIRA-127
2026-03-09 18:22:37 +08:00
Derrick
b9e0cb355d Fix for notifications unable to be interacted after gcode viewer collapsed (#12689)
JIRA-126
2026-03-09 18:01:44 +08:00
Sabriel-Koh
48b85b37d4 Move adaptive flowrate to developer mode and clarified tooltip (#12688)
* Set Adaptive Volumetric Speed as a developer mode setting, and further clarified in the tooltip

* Fixed typo
2026-03-09 14:39:54 +08:00
SoftFever
eb6da907a9 Fix crash when slicing multi-material print with wipe tower (#12682)
The WipeTower2 code path never called construct_mesh(), leaving
wipe_tower_mesh_data as std::nullopt. GCode export then dereferenced
it unconditionally, triggering an assertion failure / crash.
2026-03-09 13:31:11 +08:00
SoftFever
4f8097f7f7 Fix three regressions in the multi-tool extruder tab system: (#12680)
1. Dirty flags not showing for extruder options:
2. Crash when switching to non-first extruder tabs:
3. Modifying one extruder's parameter affects other extruders:
2026-03-09 10:48:53 +08:00
Alexandre Folle de Menezes
da3c4b50c9 Fix plurals on some GUI strings 2026-03-08 12:37:28 -03:00
yw4z
e6f90b1c7a update 2026-03-08 02:20:31 +03:00
yw4z
d129c1d9cb Update Plater.cpp 2026-03-07 19:40:39 +03:00
yw4z
6d0d787467 Update Plater.cpp 2026-03-07 19:30:16 +03:00
yw4z
ccea80482e Update Plater.cpp 2026-03-07 04:32:05 +03:00
Jakub Hencl
d6761fedc6 New translate with Menu complete (#12243)
New translate

New translate with Menu .Thx

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-06 12:10:44 +08:00
SoftFever
0f92dec77d update profile version 2026-03-06 11:44:20 +08:00
Rodrigo Faselli
01a2193ad9 Fix artifact classic wall generator painted fuzzy skin (#12632)
fix artifact classic fuzzy

Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
2026-03-06 11:27:46 +08:00
SoftFever
624a55ec98 update CN translations 2026-03-06 11:09:43 +08:00
Noisyfox
7952721931 Fix unable to load DRC file if path contains non-ascii characters (#12619)
Fix issue that failed to load DRC file if path contains non-ascii character
2026-03-06 10:24:06 +08:00
HYzd766
5ac382a9cd Update Qidi X-Max 4 0.4 nozzle.json (#12618)
* Q2C model and new consumables

* Update Qidi X-Max 4 0.4 nozzle.json
2026-03-06 10:23:17 +08:00
InfimechOfficial
57aac709e9 Infimech image update (#12616) 2026-03-05 19:17:03 -03:00
Ian Bassi
570043509f Fix %% (#12630) 2026-03-05 17:49:00 -03:00
Felix14_v2
089073b292 Update Russian localization (#12608) 2026-03-05 17:01:44 -03:00
Ian Bassi
a0f1f3db73 Update Trendshift badge link in README (#12629) 2026-03-05 16:57:54 -03:00
Felix14_v2
8dd57b0c98 Restore merged changes 2026-03-05 21:16:40 +03:00
Ian Bassi
1205903eec Text.js spanish update (#12627) 2026-03-05 14:23:54 -03:00
Rodrigo Faselli
a5b8f4608f Flatpak Crash Fix when Fuzzy skin (#12611)
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
2026-03-05 14:22:47 -03:00
Felix14_v2
8c98143932 Merge branch 'main' of https://github.com/Felix14-v2/OrcaSlicer 2026-03-05 19:36:30 +03:00
Felix14_v2
2a30344d05 Tweak before merging upstream changes 2026-03-05 19:25:52 +03:00
Ian Bassi
28649f498d Extend and Update localizations (#12610) 2026-03-05 11:33:07 -03:00
SoftFever
2ed249a81b flatpak changes (#12606)
* update flatpak for flathub
2026-03-05 17:35:08 +08:00
HYzd766
bc610e6e32 Merge branch 'OrcaSlicer:main' into A2 2026-03-05 14:08:12 +08:00
HYzd766
7fd4649d48 Merge branch 'A2' of https://github.com/HYzd766/OrcaSlicer into A2 2026-03-05 14:06:46 +08:00
HYzd766
8c895a4b7f Update Qidi X-Max 4 0.4 nozzle.json 2026-03-05 14:06:22 +08:00
Felix14_v2
f9bbfd5ea2 Unfix unnecessary line break 2026-03-04 21:56:10 +03:00
Felix14_v2
d6ba6cb8f9 Minor tweaks 2026-03-04 21:40:54 +03:00
SoftFever
52a2c033d3 Remove upstreamed wxWidgets dark theme patch for Flatpak
The GNOME dark style support patch has been submitted upstream to wxWidgets, so the local Flatpak patch is no longer needed.
2026-03-05 01:13:26 +08:00
Felix14_v2
490072310a Merge local changes with upstream ones 2026-03-04 19:34:24 +03:00
Vovodroid
1218711adb Use non-deprecated triangulate_hole method (#12592) 2026-03-04 12:25:54 -03:00
SoftFever
008cfd1f86 Linux: prefer discrete GPU on dual-GPU systems via PRIME environment variables (#12602)
* Linux: prefer discrete GPU on dual-GPU systems via PRIME environment variables

  Set DRI_PRIME=1 for AMD/nouveau PRIME setups and __NV_PRIME_RENDER_OFFLOAD/__GLX_VENDOR_LIBRARY_NAME for NVIDIA proprietary driver, only when the NVIDIA kernel module is detected. Uses replace=false to respect user overrides.

* Improves usability on Linux. No more double title bar (#12600)

* Fix double title bar on Linux by removing WM decorations for GTK

* wip

* fix

* finish

* address review comment
2026-03-04 22:48:40 +08:00
SoftFever
d50b4cbf3d Improves usability on Linux. No more double title bar (#12600)
* Fix double title bar on Linux by removing WM decorations for GTK

* wip

* fix

* finish

* address review comment
2026-03-04 22:29:27 +08:00
HYzd766
7b48cf18e2 Merge branch 'OrcaSlicer:main' into A2 2026-03-04 20:11:04 +08:00
panther757
47ab79041b Linux: add Gentoo dependency installation script (#12558)
Co-authored-by: Alan Vogt <panther7@frocat.com>
2026-03-04 15:51:16 +08:00
Noisyfox
29addf5ca1 Fix issue that fan speed not reset to normal after ironing (#12595)
Fix issue that fan speed not reset to normal after ironing (OrcaSlicer/OrcaSlicer#11824)
2026-03-04 15:46:14 +08:00
Noisyfox
d390524db0 Fix issue that pressure equalizer moves pass the original end of the line when processing very short movements (#12575) 2026-03-04 15:44:37 +08:00
HYzd766
0a84934639 Q2C model and new consumables (#12599) 2026-03-04 15:42:33 +08:00
HYzd766
4f620cb6b4 Q2C model and new consumables 2026-03-04 13:37:55 +08:00
Ian Bassi
ee52b83217 Localization update (#12572)
* Update OrcaSlicer_es.po

* ? added in code

* Spanish Update

* save your filament profile.

* Downward machines settings

* type and color.

* Update OrcaSlicer_es.po

* illegal characters

* which layer being ironed.

* Update OrcaSlicer_es.po

* by chosen filament count."

* unnecessary bridges."

* Update OrcaSlicer_es.po

* Spanish Pressure advance restore

* bandeja -> cama

* RU: Restore Pressure Advance

* Calibration text

Co-Authored-By: Felix14_v2 <75726196+Felix14-v2@users.noreply.github.com>

* Updated Localization

* Input Shaping test

* Suggestion wrapper

* Added embossJob

* Updated all

* Emboss missing marks

* Missing preset values

* Action Required

---------

Co-authored-by: Felix14_v2 <75726196+Felix14-v2@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-03-04 12:50:33 +08:00
Heiko Liebscher
d8f3950059 fix: update German translations for filament presets and related terms (#12542)
* fix: update German translations for filament presets and related terms

* fix: correct typo in German translation for printer and filament profiles
2026-03-04 12:48:54 +08:00
Noisyfox
6d6f7451d4 [Emboss] Fix issue that font search not working on macOS (#12531)
Fix issue that font search not working on macOS
2026-03-04 12:46:50 +08:00
Alexandre Folle de Menezes
d54adafdaa Grammar and spelling fixes on GUI strings (#12410) 2026-03-03 17:36:42 -03:00
Alexandre Folle de Menezes
17e534cac4 Add missing space after extruder name (#12547) 2026-03-03 17:25:33 -03:00
SoftFever
90646276f8 Fix Bambu LAN printing with legacy network plugin (#12582) 2026-03-03 19:30:22 +08:00
SoftFever
b7033a4c92 WIP: Parallelize macOS CI builds by splitting arm64 and x86_64 into separate jobs (#12562)
* Parallelize macOS CI builds by splitting arm64 and x86_64 into separate jobs

* fix shell errors

* Delete intermediate per-arch artifacts
2026-03-03 19:29:59 +08:00
VOLUMIC
1f19ff67a3 VOLUMIC profils updates (#12565)
* VOLUMIC profils updates

* Delete resources/profiles/Volumic/EXO42 IDRE_cover.png

* VOLUMIC profils updates

* VOLUMIC profils updates
2026-03-03 18:54:51 +08:00
Ian Bassi
d017250d9c Fix wiki redirection (#12569) 2026-03-02 18:13:01 -03:00
Alexandre Folle de Menezes
dba8a6d88b Fix Celsius symbol not showing on G-code viewer (#12567) 2026-03-02 14:11:45 -03:00
Andrew Sun
49d2a326db Revert "Revert "Set NSWindow color space to sRGB on macOS"" (#12546)
re: https://github.com/OrcaSlicer/OrcaSlicer/pull/10827#issuecomment-3713871962

Let's give this another try :)
2026-03-02 20:31:14 +08:00
Alexandre Folle de Menezes
abd3bce88a Improve and complement the pt-BR translation (#12550) 2026-03-02 09:11:32 -03:00
SoftFever
b908bab904 fix build errors on Linux with Clang 20 and GTK warnings (#12507)
* guard -Wno-error=enum-constexpr-conversion behind compiler flag check

* Fix: Suppress GTK critical warnings and prevent multiple URI scheme registrations in WebView
2026-03-01 18:43:15 +08:00
Ian Bassi
04018980e1 Fix "Glidlines" "gridlines locale (#12529) 2026-02-28 23:44:52 -03:00
gerchowl
899bcf2e5f fix: typo "Glidlines" → "Gridlines" in View menu tooltip (#12527) 2026-02-28 23:42:51 -03:00
Rodrigo Faselli
0ef8a79cd2 Fix missing infill layers (fill_surface_by_multilines & fill_surface_trapezoidal bug fix) (#12516)
* FillRectilinear bugfix

* cleaning

* Revert "cleaning"

This reverts commit 0de21ada78.

* Filltrapezoidal is OK

* Filltrapezoidal fix 2
2026-02-28 18:52:05 -03:00
SoftFever
a38af4d85a fix missing translations for Canvas Toolbar Menu 2026-03-01 01:15:14 +08:00
SoftFever
7cabde6ca6 update profile version 2026-03-01 00:41:54 +08:00
SoftFever
6725e657ab update locale 2026-03-01 00:36:16 +08:00
yw4z
095b5116ac Add option for hiding / showing gridlines (#10545)
Might be useful who want to use custom grid line system with textures. or a clean look

### PROBLEM / SCENARIOS
• Custom made textures overlapping with grid system. so it might be confusing for user if want to use specific markings
• User may found its a distracting item and wants a clean look

### SOLUTION
added to view menu
<img width="477" height="434" alt="Screenshot-20251230192707" src="https://github.com/user-attachments/assets/e298d9b2-5f8f-4e33-af22-ea7c84c9b5b8" />

added to canvas menu
<img width="278" height="297" alt="Screenshot-20251230192717" src="https://github.com/user-attachments/assets/a9952408-a361-4e64-ad9a-72e2480c74cf" />

Clean look without gridlines
<img width="1669" height="1157" alt="Screenshot-20250827144140" src="https://github.com/user-attachments/assets/9229f330-9543-4d39-a8fc-01deb9b61336" />

<img width="1669" height="1157" alt="Screenshot-20250827144212" src="https://github.com/user-attachments/assets/ab3848fb-74d7-4618-8bc7-0cdff10a3804" />


Few Examples with custom made textures / markings without gridlines
<img width="1669" height="1157" alt="Screenshot-20250827140008" src="https://github.com/user-attachments/assets/5d7b17ab-e97a-489c-9e4d-99157a37b6b7" />

<img width="1669" height="1157" alt="Screenshot-20250827141904" src="https://github.com/user-attachments/assets/a7e0f360-a85a-489d-9bc2-39286984643a" />
2026-03-01 00:19:04 +08:00
SoftFever
60a63c63eb update locale and Simplified/Tranditional Chinese translation 2026-02-28 22:00:48 +08:00
Valerii Bokhan
5e30783dcf Enhancement: Enabling base patterns (infill) for Organic supports (#12141)
Enhancement: Enabling base patterns for Organic supports
2026-02-28 18:25:21 +08:00
Valerii Bokhan
5c07cb5c39 I18n: Preview translations minor fix (Ukrainian) (#12504) 2026-02-27 15:24:06 -03:00
SoftFever
a2528fee10 update locale 2026-02-28 01:14:05 +08:00
Ian Bassi
ae828cbde3 Fix: Init Serialized options (#12489)
Update Tab.cpp
2026-02-28 00:02:30 +08:00
Ian Bassi
3f819005cc Preview translations (#12503)
Updated new preview options missing
+ Ru improvements (thanks @valerii-bokhan )
2026-02-27 23:59:30 +08:00
Ioannis Giannakas
25d07eac8f Fix wipe tower first layer leaving gaps when spacing other than 100pc is specified (#12491)
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-27 23:57:08 +08:00
Heiko Liebscher
e57733a5ff add new de translations (#12501)
add new translations
2026-02-27 23:49:16 +08:00
Molly K
8a2a778557 Simplified Chinese translation improvement (≈ lines after 16500) (second minor update) (#12453)
* SAVE line 20K+ ~ 16573

* fix syntax errors

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-27 23:41:22 +08:00
Alexandre Folle de Menezes
72a4597107 Fix GUI strings that should start with uppercase (#12499) 2026-02-27 11:19:22 -03:00
SoftFever
2806398e79 Skip uploading cache for PR build (#12494) 2026-02-27 13:42:19 +08:00
SoftFever
1d24470918 Feature/mac_build (#12493)
* fix deps cache miss for Mac PR build
2026-02-27 12:48:47 +08:00
tome9111991
f2c8b46af6 Fix: crash in PA calibration pattern generation (#12406)
Fix crash in PA calibration pattern generation

Reset current extruder ID and clear pointers in set_extruders to prevent dangling pointers when extruders are recreated. Also fixed undefined behavior by checking if the vector is empty before taking max_element.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-27 12:44:40 +08:00
yw4z
c3bb4347da Filament Selection dialog Fixes / Improvements (#12325)
* Update 22.js

* fix printer list empty

* switch to vertical scrolling on custom filaments

* Update 23.css

* add stats

* fix uncommon filament types

* fix setup wizerd styling

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-26 23:42:49 +08:00
Ian Bassi
72db7fa4df "None (allow paint)" to "Painted Only" (#12487)
Co-authored-by: Valerii Bokhan <80919135+valerii-bokhan@users.noreply.github.com>
2026-02-26 12:05:24 -03:00
Felix14_v2
c3365e0478 Update Russian localization (#12001) 2026-02-26 11:54:46 -03:00
SoftFever
479fbc85cd Change bed temperature type to use highest temp by default (#12486)
## Summary
- Change default bed temperature type from "By First filament" to "By Highest Temp"
- Move `bed_temperature_formula` option from develop mode to advanced mode for better accessibility
- Relocate UI control from "Basic Information - Advanced" to "Multimaterial Setup" section where it's more relevant for multi-filament printing
Using the highest temperature of all printed filaments is generally safer for bed adhesion than using the first filament's temperature, especially in multi-material prints where different filaments may require different bed temperatures.

<img width="390" height="239" alt="Screenshot 2026-02-26 at 18 44 56" src="https://github.com/user-attachments/assets/0fe9f8c7-062a-4a7a-8ab3-c52df7e74b26" />
2026-02-26 21:05:54 +08:00
Valerii Bokhan
76436bb29a Fix: Fixed the values comparison for Float-based config options (#12478) 2026-02-26 09:28:45 -03:00
Argo
3a61fefa3a Wipe tower "infinite out of bed line" fix (#12267)
Fix wipe tower out-of-bed moves

Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
2026-02-26 16:11:13 +08:00
Boštjan Čadež
d604cc9697 Fix: macOS 2 finger tap moves moves slider instead of opening context menu (#12375) 2026-02-25 11:20:57 +00:00
SoftFever
db1fe73e85 Fix wipe tower skirt alignment by computing bbx from actual first-layer polygon (#12457) 2026-02-25 12:37:05 +08:00
Ian Bassi
ce56ad5590 Minor export text change (#12461) 2026-02-24 15:05:57 -03:00
Alexandre Folle de Menezes
ad57020139 Fix spacing issues (#12404) 2026-02-23 23:31:23 -03:00
Ioannis Giannakas
96be9f94ef Fix wipe tower Y offset for SEMM (#12442) 2026-02-23 19:44:46 -03:00
Ian Bassi
6a831c5e78 JD processor upgrade (#12440)
* Update GCodeProcessor.cpp

Co-Authored-By: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>

* Fix

Co-Authored-By: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>

* get_axis_max_jerk_with_jd

* get_get fix

Co-Authored-By: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>

---------

Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-02-23 19:32:04 -03:00
Alexandre Folle de Menezes
ec7a5f5140 Add translation markers to measure units (#12403)
# Description
Some units were missing the translation markers, others were not in the standard format.
2026-02-23 22:53:19 +08:00
Rodrigo Faselli
eeb2ec7871 Added Junction Deviation support to time estimation (#12417)
# Description

This PR enhances the GCodeProcessor's time estimation by incorporating Junction Deviation (JD) into the jerk calculations, providing more accurate print time predictions for firmwares that use JD (like modern Marlin).

Key Changes:
- Added JD support to time estimation

- Reads machine_max_junction_deviation (machine limits) and default_junction_deviation (print profile)

- When JD is enabled (>0), replaces traditional X/Y jerk values with JD-based calculation:
$Jerk = \sqrt{2.5\cdot JD \cdot acceleration }$

- Falls back to traditional jerk when JD is not used

# Test:
JD:0.0256mm   Accel.: 1000 mm/s²
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/f0e95294-bfca-400e-bffc-8d615d051b70" />

Jerk: 8mm/s  (equivalent)
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/8508727e-70f6-49ed-ac19-002db73e957b" />

JD:0.0128mm (4mm/s jerk)
<img width="2560" height="1392" alt="image" src="https://github.com/user-attachments/assets/91b04d3b-1b9e-48f4-b4b4-5addda2eff57" />
2026-02-23 22:48:24 +08:00
Sabriel-Koh
1f4fce974f fix: filament remap should not "paint" unpainted triangles (#12437)
fix: filament remap should not "paint" unpainted triangles and should update the object extruder UI
2026-02-23 22:45:26 +08:00
Kellwa
3b350a93f0 Anycubic Kobra Neo printer profiles (#12341)
* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* fix

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-23 22:26:15 +08:00
mlugo-apx
ea5db3aae8 Add Elegoo filament profiles to OrcaFilamentLibrary (#12359)
* Add Elegoo filament profiles to OrcaFilamentLibrary

Add 7 Elegoo filament profiles based on manufacturer specifications:
- Elegoo Rapid PETG (high-speed PETG, 240-270°C, 30-600mm/s)
- Elegoo PETG Pro (standard PETG, 230-260°C, 30-270mm/s)
- Elegoo PETG-CF (carbon fiber PETG, 240-270°C, 30-220mm/s)
- Elegoo PLA (standard PLA, 190-230°C, 30-280mm/s)
- Elegoo Rapid PLA+ (high-speed PLA, 190-230°C, 30-600mm/s)
- Elegoo ASA (ASA, 250-280°C, 30-270mm/s)
- Elegoo TPU 95A (flexible TPU, 220-240°C, 30-60mm/s)

All settings sourced from Elegoo's official product specifications.

* Fix dual seam fuzzy painted rev 2 (#11923)

* 2 seam fuzzy 2nd attempt

* Update FuzzySkin.cpp

* Fix debug SVG

* solve bump artifact in extrusion junction joint

* minor fixes

* cleaning

Update FuzzySkin.cpp

* Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (#12298)

* Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (#12380)

* tweak legacy library migration from rename to copy in BBLNetworkPlugin (#12400)

* tweak legacy library migration from rename to copy in BBLNetworkPlugin

* Add Pressure Advance visualization support (#11673)

* Add Pressure Advance visualization support

Signed-off-by: minicx <minicx@disroot.org>

* Port Pressure Advance visualization to libvgcode architecture

Adapt PA visualization (originally in commit e3a77259) to work with
the new libvgcode library introduced by upstream PR #10735.

Changes across the libvgcode stack:
- PathVertex: add pressure_advance field
- Types.hpp: add PressureAdvance to EViewType enum
- ViewerImpl: add ColorRange, color mapping, range updates for PA
- LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex

GCodeViewer UI integration:
- Add "Pressure Advance" to view type dropdown
- Add PA color range in legend (3 decimal places)
- Add PA value display in sequential view marker tooltip
- Add PA row in position properties table

The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE)
is preserved from the original implementation.

* Tag Pressure Advance visualization changes with ORCA comments

Signed-off-by: minicx <minicx@disroot.org>

---------

Signed-off-by: minicx <minicx@disroot.org>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>

* Fix time estimation using wrong machine limits due to broken extruder_id indexing (#12411)

The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration
was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer
never ported. Without that system the limit arrays only have 2 values
([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized
value (255) would overshoot the array and fall back to values.back(),
always returning stealth-mode limits and producing incorrect time estimates.

Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify
the M201/M203 handlers to write only the two mode slots they actually use.

* Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (#12414)

print_machine_envelope() used get_extruder_id(extruder_id)*2 to index
machine limit arrays that only hold [Normal, Stealth] (2 entries).
For multi-extruder setups this went out-of-bounds, causing wrong M201/M203
values in the G-code which then override the estimator's correct limits.

Same class of bug as c6d1c11ebb but on the G-code writer side.

Changes:
- Remove unused extruder_id param from print_machine_envelope()
- Use .values.front() for M201/M203, matching M204/M205 in same function
- Change get_option_value() fallback from .back() to .front() so any
  future out-of-bounds index returns Normal mode instead of Stealth

* update error message when plugin upgrade failed

* Add and update pt-BR translations (#12409)

* Add preference for filament area height to reduce scrolling while using 16+ filaments (#12317)

Fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12284

Adds a preference for filaments area height since every user has different amount of MM units and external filaments
so users can set a value that fits their setups this way

we might see 3 or 6 filaments for each unit on future. thats why i set value as int

used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament

min value is 8.  might be good when no external filaments in use

max value is 99. UI works same as 2.3.1 version

<img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" />

**BEFORE**
Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units

<img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" />

**AFTER**
value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament
<img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" />

value 18  - 4 multimaterial units ( 16 filaments ) and 1 external filament
<img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" />

* Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (#11915)

* Fix float number not working properly for option min/max (#11211)

* ConfigOptionDef: min/max values type are changed from INT to FLOAT.

(cherry picked from commit f277bc80c22e0c9a067481a4301922e2c96aed47)

* Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (SoftFever/OrcaSlicer#11069)

* Fix Linux build issue

* Fix float comparison due to precision loss

* Fix: Range check added for coInt options; Ranges and defaults added in tooltips

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>

* Update machine profile for OpenEYE Peacock V2 (#12333)

* OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker)

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>

* Optimize retraction settings in printer profiles to reduce stringing and improve print quality

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>

---------

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>

* Fix preheat regression bugs  (#12438)

Fix preheat regression bugs
revert 769fc137c7

* Fix the issue where `resources/profiles/OrcaFilamentLibrary.json` is not updated accordingly.

---------

Signed-off-by: minicx <minicx@disroot.org>
Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
Co-authored-by: Kiss Lorand <50251547+kisslorand@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: minicx <39405619+loss-and-quick@users.noreply.github.com>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Alexandre Folle de Menezes <afmenez@terra.com.br>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: Valerii Bokhan <80919135+valerii-bokhan@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
2026-02-23 22:14:29 +08:00
Derrick
b89f67e433 Fix Intra-layer "As Object List" not working. (#12368)
Added checks in ByLayer print sequence to handle ordering for Intra-layer ordering option. Prevents new ordering setup when "As object list" is enabled.
2026-02-23 22:05:47 +08:00
SoftFever
e7d2bbd6a9 Fix preheat regression bugs (#12438)
Fix preheat regression bugs
revert 769fc137c7
2026-02-23 21:48:11 +08:00
Sezgin AÇIKGÖZ
872d184860 Update machine profile for OpenEYE Peacock V2 (#12333)
* OpenEYE Peacock V2 machine profile: Add printer_agent key to enable AMS filament synchronization (Klipper/Moonraker)

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>

* Optimize retraction settings in printer profiles to reduce stringing and improve print quality

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>

---------

Signed-off-by: Sezgin AÇIKGÖZ <sezginacikgoz@mail.com>
2026-02-23 15:21:57 +08:00
Valerii Bokhan
4343ddf823 Fix: Correct range checking for int and float Config Options + QoL changes in tooltips (#11915)
* Fix float number not working properly for option min/max (#11211)

* ConfigOptionDef: min/max values type are changed from INT to FLOAT.

(cherry picked from commit f277bc80c22e0c9a067481a4301922e2c96aed47)

* Fix infinite loop and crash when `fuzzy_skin_point_distance` = 0 (SoftFever/OrcaSlicer#11069)

* Fix Linux build issue

* Fix float comparison due to precision loss

* Fix: Range check added for coInt options; Ranges and defaults added in tooltips

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-23 13:06:07 +08:00
yw4z
5e6a8e4daf Add preference for filament area height to reduce scrolling while using 16+ filaments (#12317)
Fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/12284

Adds a preference for filaments area height since every user has different amount of MM units and external filaments
so users can set a value that fits their setups this way

we might see 3 or 6 filaments for each unit on future. thats why i set value as int

used 10 as default value. its good for 2 multimaterial units ( 8 filaments ) and 1 external filament

min value is 8.  might be good when no external filaments in use

max value is 99. UI works same as 2.3.1 version

<img width="562" height="122" alt="Screenshot-20260215194149" src="https://github.com/user-attachments/assets/309cec36-8b83-48f3-875f-d5f22a9631e7" />

**BEFORE**
Scrollable area fixed for 10 items. that causes a lot of scrolling whe user has 3 or 4 ams units

<img width="411" height="237" alt="Screenshot-20260215194816" src="https://github.com/user-attachments/assets/fc7823c0-d82a-4d1f-bb5b-56e8dd47abd2" />

**AFTER**
value 10. - 2 multimaterial units ( 8 filaments ) and 1 external filament
<img width="1002" height="250" alt="Screenshot-20260215195243" src="https://github.com/user-attachments/assets/e3238cd1-788e-4ed2-b048-89c63bd323db" />

value 18  - 4 multimaterial units ( 16 filaments ) and 1 external filament
<img width="1001" height="355" alt="Screenshot-20260215195127" src="https://github.com/user-attachments/assets/afe0305e-fcb4-4a51-b8dc-e70a063aa391" />
2026-02-23 12:56:09 +08:00
Alexandre Folle de Menezes
386aab9f94 Add and update pt-BR translations (#12409) 2026-02-23 09:04:12 +08:00
SoftFever
b2399ac909 update error message when plugin upgrade failed 2026-02-22 16:55:44 +08:00
SoftFever
c085eb845c Fix machine envelope G-code emitting wrong limits due to broken extruder_id indexing (#12414)
print_machine_envelope() used get_extruder_id(extruder_id)*2 to index
machine limit arrays that only hold [Normal, Stealth] (2 entries).
For multi-extruder setups this went out-of-bounds, causing wrong M201/M203
values in the G-code which then override the estimator's correct limits.

Same class of bug as c6d1c11ebb but on the G-code writer side.

Changes:
- Remove unused extruder_id param from print_machine_envelope()
- Use .values.front() for M201/M203, matching M204/M205 in same function
- Change get_option_value() fallback from .back() to .front() so any
  future out-of-bounds index returns Normal mode instead of Stealth
2026-02-22 16:13:06 +08:00
SoftFever
859f401df5 Fix time estimation using wrong machine limits due to broken extruder_id indexing (#12411)
The extruder_id*2 offset in get_axis_max_feedrate/get_axis_max_acceleration
was cherry-picked from BambuStudio's per-nozzle limit system, which OrcaSlicer
never ported. Without that system the limit arrays only have 2 values
([0]=Normal, [1]=Stealth), so any extruder_id > 0 or the uninitialized
value (255) would overshoot the array and fall back to values.back(),
always returning stealth-mode limits and producing incorrect time estimates.

Revert to indexing by time mode only (matching v2.3.1 behavior) and simplify
the M201/M203 handlers to write only the two mode slots they actually use.
2026-02-22 13:08:23 +08:00
minicx
7e1b2d99d3 Add Pressure Advance visualization support (#11673)
* Add Pressure Advance visualization support

Signed-off-by: minicx <minicx@disroot.org>

* Port Pressure Advance visualization to libvgcode architecture

Adapt PA visualization (originally in commit e3a77259) to work with
the new libvgcode library introduced by upstream PR #10735.

Changes across the libvgcode stack:
- PathVertex: add pressure_advance field
- Types.hpp: add PressureAdvance to EViewType enum
- ViewerImpl: add ColorRange, color mapping, range updates for PA
- LibVGCodeWrapper: pass pressure_advance from MoveVertex to PathVertex

GCodeViewer UI integration:
- Add "Pressure Advance" to view type dropdown
- Add PA color range in legend (3 decimal places)
- Add PA value display in sequential view marker tooltip
- Add PA row in position properties table

The GCodeProcessor PA parsing (M900, M572, SET_PRESSURE_ADVANCE)
is preserved from the original implementation.

* Tag Pressure Advance visualization changes with ORCA comments

Signed-off-by: minicx <minicx@disroot.org>

---------

Signed-off-by: minicx <minicx@disroot.org>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-21 13:10:08 +00:00
SoftFever
528e7c6780 tweak legacy library migration from rename to copy in BBLNetworkPlugin (#12400)
* tweak legacy library migration from rename to copy in BBLNetworkPlugin
2026-02-21 20:49:09 +08:00
SoftFever
1827a03d17 Fix an issue that on Windows the Bambu legacy plugin is 01.10.01.09 (#12380) 2026-02-21 00:15:48 +08:00
Kiss Lorand
a717597003 Fix filament override changes not appearing in Unsaved Changes and showing as “Undef category” in preset comparison (#12298) 2026-02-19 14:48:42 -03:00
Rodrigo Faselli
a5a5cad09b Fix dual seam fuzzy painted rev 2 (#11923)
* 2 seam fuzzy 2nd attempt

* Update FuzzySkin.cpp

* Fix debug SVG

* solve bump artifact in extrusion junction joint

* minor fixes

* cleaning

Update FuzzySkin.cpp
2026-02-18 18:38:20 -03:00
SoftFever
1745e8b910 Reapply "Switch to self hosted mac runner (#12024)" with proper fix (#12278)
* Reapply "Switch to self hosted mac runner (#12024)" with proper fix

This reverts commit 783f9926e3.

* use conditional logic for self-hosted runners

* improve readbility
2026-02-17 16:31:40 +08:00
SoftFever
a81537f43d fix flatpak CI build cache 2026-02-16 21:07:09 +08:00
SoftFever
29325e3561 tweak: adjust max volumetric speed for PETG profiles to improve print quality (#12329)
* tweak: adjust max volumetric speed for PETG profiles to improve print quality
2026-02-16 11:56:15 +08:00
Argo
0604aa5c76 Fix 3MF import crash for silent-mode machine limits with legacy vector sizes (#12289)
Normalize printer_options_with_variant_2 (stride=2) machine limit vectors during preset merge to handle legacy 3MF/projects that store only a single (normal,silent) pair despite multiple printer variants, preventing set_with_restore() size-mismatch crashes.

Crash error message during 3MF import as project:

<img width="833" height="274" alt="image" src="https://github.com/user-attachments/assets/f92148a9-98c6-47b7-a0ab-d5ac8b1f2be4" />

3MF attached that causes the bug. 
[cube.3mf.zip](https://github.com/user-attachments/files/25318309/cube.3mf.zip)
2026-02-15 20:47:04 +08:00
Matthias Blaicher
bf59fe458f Fix EGL/GLX mismatch causing blank 3D preview on Linux (#12308)
- Add configurable GLEW_USE_EGL option (default OFF) to match wxWidgets
- Explicitly set wxUSE_GLCANVAS_EGL=OFF for vendored wxWidgets build
- Add compile-time check to detect EGL/GLX backend mismatch between
  GLEW and wxWidgets, preventing silent rendering failures

The bug occurred when GLEW was compiled with EGL support (using
eglGetProcAddress) but wxWidgets created GLX contexts. This mismatch
caused OpenGL function pointers to fail loading, resulting in blank
3D model preview.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2026-02-15 16:26:16 +08:00
Branden Cash
055f24ca7a feat(MoonrakerPrinterAgent): support Happy Hare as alternative to AFC for filament sync (#12307)
# Description


# Screenshots/Recordings/Graphs


https://github.com/user-attachments/assets/5558b4be-24eb-4f2d-83fd-8482560a0014

<img width="445" height="285" alt="Screenshot 2026-02-14 at 7 31 57 PM" src="https://github.com/user-attachments/assets/e71fee66-05da-4f9c-8123-0f52e93f0ebb" />


## Tests

Removed configured filaments and pressed the sync button. Observed the filaments configured in my system were populated.
2026-02-15 14:29:58 +08:00
SoftFever
06cee7ffe7 bump profile version to "02.03.02.40" (#12309) 2026-02-15 14:24:36 +08:00
Ian Bassi
5ec4874b33 Linux: Repaired VFA tower (#12290)
* Update CalibUtils.cpp

* VFA.drc case to vfa.drc
2026-02-14 23:23:25 -03:00
SoftFever
783f9926e3 Revert "Switch to self hosted mac runner (#12024)"
This reverts commit f1212be6bb.
2026-02-14 18:14:28 +08:00
Ian Bassi
2fae370e52 Spanish minor update (#12268) 2026-02-13 16:03:56 -03:00
Ian Bassi
cef69307e7 Spanish Update (#12254)
* Spanish Update
2026-02-13 15:07:17 -03:00
Argo
769fc137c7 Ported Bambu Studio wipe tower interface features (with improved preheat and cooldown behaviour) - NEW (#12266)
Wipe tower interface features and preheat fixes

Fresh PR branch rebuilt on upstream/main (squash of origin/BBL-studio-wipe-tower-merge) to avoid merge-history issues.
2026-02-13 22:53:25 +08:00
1857 changed files with 83824 additions and 49438 deletions

View File

@@ -49,37 +49,53 @@ concurrency:
jobs:
build_linux:
name: Build Linux
strategy:
fail-fast: false
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_check_cache.yml
with:
os: ubuntu-24.04
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
build-deps-only: ${{ inputs.build-deps-only || false }}
secrets: inherit
build_all:
name: Build Non-Linux
build_windows:
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_check_cache.yml
with:
os: ${{ vars.SELF_HOSTED && 'orca-win-server' || 'windows-latest' }}
build-deps-only: ${{ inputs.build-deps-only || false }}
force-build: ${{ github.event_name == 'schedule' }}
secrets: inherit
build_macos_arch:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
- os: orca-macos-arm64
arch: arm64
arch:
- arm64
- x86_64
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_check_cache.yml
with:
os: ${{ matrix.os }}
os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }}
arch: ${{ matrix.arch }}
build-deps-only: ${{ inputs.build-deps-only || false }}
force-build: ${{ github.event_name == 'schedule' }}
secrets: inherit
build_macos_universal:
name: Build macOS Universal
needs: build_macos_arch
if: ${{ !cancelled() && needs.build_macos_arch.result == 'success' && !inputs.build-deps-only && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
uses: ./.github/workflows/build_orca.yml
with:
os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }}
arch: universal
macos-combine-only: true
secrets: inherit
unit_tests:
name: Unit Tests
runs-on: ubuntu-24.04
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
needs: build_linux
if: ${{ !cancelled() && success() }}
steps:
@@ -91,21 +107,24 @@ jobs:
scripts
tests
- name: Apt-Install Dependencies
if: ${{ !vars.SELF_HOSTED }}
uses: ./.github/actions/apt-install-deps
- name: Restore Test Artifact
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: ${{ github.sha }}-tests
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.28.0" # use most recent 3.28.x version
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Unpackage and Run Unit Tests
timeout-minutes: 20
run: |
tar -xvf build_tests.tar
scripts/run_unit_tests.sh
- name: Upload Test Logs
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
if: ${{ failure() }}
with:
name: unit-test-logs
@@ -115,10 +134,15 @@ jobs:
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: "ctest_results.xml"
- name: Delete Test Artifact
if: success()
uses: geekyeggo/delete-artifact@v5
with:
name: ${{ github.sha }}-tests
flatpak:
name: "Flatpak"
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49
options: --privileged
volumes:
- /usr/local/lib/android:/usr/local/lib/android
@@ -134,8 +158,8 @@ jobs:
runner: ubuntu-24.04
- arch: aarch64
runner: ubuntu-24.04-arm
# Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
# Don't run scheduled builds on forks; skip entirely on self-hosted runners
if: ${{ !cancelled() && !vars.SELF_HOSTED && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
runs-on: ${{ matrix.variant.runner }}
env:
date:
@@ -154,22 +178,47 @@ jobs:
git_commit_hash="${{ github.event.pull_request.head.sha }}"
else
ver=V$ver_pure
git_commit_hash=""
git_commit_hash="${{ github.sha }}"
fi
echo "ver=$ver" >> $GITHUB_ENV
echo "ver_pure=$ver_pure" >> $GITHUB_ENV
echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
echo "git_commit_hash=$git_commit_hash" >> $GITHUB_ENV
shell: bash
# Manage flatpak-builder cache externally so PRs restore but never upload
- name: Restore flatpak-builder cache
if: github.event_name == 'pull_request'
uses: actions/cache/restore@v5
with:
path: .flatpak-builder
key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.event.pull_request.base.sha }}
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
- name: Save/restore flatpak-builder cache
if: github.event_name != 'pull_request'
uses: actions/cache@v5
with:
path: .flatpak-builder
key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.sha }}
restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
- name: Disable debug info for faster CI builds
run: |
sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
shell: bash
- name: Inject git commit hash into Flatpak manifest
run: |
sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
shell: bash
- uses: flatpak/flatpak-github-actions/flatpak-builder@master
with:
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
manifest-path: scripts/flatpak/io.github.softfever.OrcaSlicer.yml
cache: true
manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
cache: false
arch: ${{ matrix.variant.arch }}
upload-artifact: false
- name: Upload artifacts Flatpak
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak'
@@ -183,3 +232,4 @@ jobs:
asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted

View File

@@ -28,15 +28,17 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: 'true'
lfs: 'false'
- name: set outputs
id: set_outputs
env:
dep-folder-name: ${{ inputs.os != 'orca-macos-arm64' && '/OrcaSlicer_dep' || '' }}
output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
# Keep macOS cache keys and paths architecture-specific.
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || 'linux-clang') }}
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
run: |
echo cache-key=${{ inputs.os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
- name: load cache

View File

@@ -36,7 +36,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: 'true'
lfs: 'false'
- name: load cached deps
uses: actions/cache@v5
@@ -46,85 +46,86 @@ jobs:
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.28.0" # use most recent 3.28.x version
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: setup dev on Windows
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
- name: Get the date on Ubuntu and macOS
if: inputs.os != 'windows-latest'
if: runner.os != 'Windows'
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
shell: bash
- name: Get the date on Windows
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
run: echo "date=$(Get-Date -Format 'yyyyMMdd')" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
shell: pwsh
# Build Dependencies
- name: Build on Windows
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}
run: |
choco install strawberryperl
if (-not "${{ vars.SELF_HOSTED }}") {
choco install strawberryperl
}
.\build_release_vs.bat deps
.\build_release_vs.bat pack
cd ${{ github.workspace }}/deps/build
shell: pwsh
- name: Build on Mac ${{ inputs.arch }}
if: inputs.os == 'orca-macos-arm64'
if: runner.os == 'macOS'
working-directory: ${{ github.workspace }}
run: |
# brew install automake texinfo libtool
# brew list
# brew uninstall --ignore-dependencies zstd
./build_release_macos.sh -dx -a universal -t 10.15
for arch in arm64 x86_64; do
(cd "${{ github.workspace }}/deps/build/${arch}" && \
find . -mindepth 1 -maxdepth 1 ! -name 'OrcaSlicer_dep' -exec rm -rf {} +)
done
# brew install zstd
if [ -z "${{ vars.SELF_HOSTED }}" ]; then
brew install automake texinfo libtool
fi
./build_release_macos.sh -dx ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15
(cd "${{ github.workspace }}/deps/build/${{ inputs.arch }}" && \
find . -mindepth 1 -maxdepth 1 ! -name 'OrcaSlicer_dep' -exec rm -rf {} +)
- name: Apt-Install Dependencies
if: inputs.os == 'ubuntu-24.04'
if: runner.os == 'Linux' && !vars.SELF_HOSTED
uses: ./.github/actions/apt-install-deps
- name: Build on Ubuntu
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
if: runner.os == 'Linux'
working-directory: ${{ github.workspace }}
run: |
mkdir -p ${{ github.workspace }}/deps/build/destdir
./build_linux.sh -dr
./build_linux.sh -drlL
cd deps/build
tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir
# Upload Artifacts
# - name: Upload Mac ${{ inputs.arch }} artifacts
# if: inputs.os == 'orca-macos-arm64'
# if: runner.os == 'macOS'
# uses: actions/upload-artifact@v6
# with:
# name: OrcaSlicer_dep_mac_${{ env.date }}
# path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.tar.gz
- name: Upload Windows artifacts
if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_dep_win64_${{ env.date }}
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip
# - name: Upload Windows artifacts
# if: runner.os == 'Windows'
# uses: actions/upload-artifact@v6
# with:
# name: OrcaSlicer_dep_win64_${{ env.date }}
# path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip
- name: Upload Ubuntu artifacts
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env:
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }}
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
# - name: Upload Ubuntu artifacts
# if: runner.os == 'Linux' && !env.ACT
# env:
# ubuntu-ver: '2404'
# uses: actions/upload-artifact@v6
# with:
# name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }}
# path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
build_orca:
name: Build OrcaSlicer

View File

@@ -2,10 +2,10 @@ on:
workflow_call:
inputs:
cache-key:
required: true
required: false
type: string
cache-path:
required: true
required: false
type: string
os:
required: true
@@ -13,6 +13,10 @@ on:
arch:
required: false
type: string
macos-combine-only:
required: false
type: boolean
default: false
jobs:
build_orca:
@@ -22,15 +26,18 @@ jobs:
date:
ver:
ver_pure:
ubuntu-ver: '2404'
ubuntu-ver-str: '_Ubuntu2404'
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
lfs: 'true'
lfs: 'false'
- name: load cached deps
if: ${{ !(runner.os == 'macOS' && inputs.macos-combine-only) }}
uses: actions/cache@v5
with:
path: ${{ inputs.cache-path }}
@@ -39,10 +46,12 @@ jobs:
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.28.0" # use most recent 3.28.x version
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
useLocalCache: true # <--= Use the local cache (default is 'false').
useCloudCache: true
- name: Get the version and date on Ubuntu and macOS
if: inputs.os != 'windows-latest'
if: runner.os != 'Windows'
run: |
ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2)
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
@@ -59,7 +68,7 @@ jobs:
shell: bash
- name: Get the version and date on Windows
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
run: |
$date = Get-Date -Format 'yyyyMMdd'
$ref = "${{ github.ref }}"
@@ -86,29 +95,75 @@ jobs:
# Mac
- name: Install tools mac
if: inputs.os == 'orca-macos-arm64'
if: runner.os == 'macOS' && !inputs.macos-combine-only
run: |
# brew install libtool
# brew list
mkdir -p ${{ github.workspace }}/deps/build
if [ -z "${{ vars.SELF_HOSTED }}" ]; then
brew install libtool
brew list
fi
mkdir -p ${{ github.workspace }}/deps/build/${{ inputs.arch }}
# - name: Free disk space
# if: inputs.os == 'orca-macos-arm64'
# run: |
# df -hI /dev/disk3s1s1
# sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "Xcode_15.4.app" -exec rm -rf {} +
# sudo rm -rf ~/Library/Developer/CoreSimulator/Caches/*
# df -hI /dev/disk3s1s1
- name: Free disk space
if: runner.os == 'macOS' && !inputs.macos-combine-only && !vars.SELF_HOSTED
run: |
df -hI /dev/disk3s1s1
sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "Xcode_15.4.app" -exec rm -rf {} +
sudo rm -rf ~/Library/Developer/CoreSimulator/Caches/*
df -hI /dev/disk3s1s1
- name: Build slicer mac
if: inputs.os == 'orca-macos-arm64'
if: runner.os == 'macOS' && !inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
./build_release_macos.sh -s -n -x -a universal -t 10.15
./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15
- name: Pack macOS app bundle ${{ inputs.arch }}
if: runner.os == 'macOS' && !inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
tar -czvf OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz -C build/${{ inputs.arch }} OrcaSlicer
- name: Upload macOS app bundle ${{ inputs.arch }}
if: runner.os == 'macOS' && !inputs.macos-combine-only
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}
path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz
- name: Download macOS app bundles
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: actions/download-artifact@v8
with:
pattern: OrcaSlicer_Mac_bundle_*_${{ github.sha }}
path: ${{ github.workspace }}/mac_bundles
- name: Extract macOS app bundles
if: runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
mkdir -p build/arm64 build/x86_64
arm_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
x86_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
tar -xzvf "$arm_bundle" -C "${{ github.workspace }}/build/arm64"
tar -xzvf "$x86_bundle" -C "${{ github.workspace }}/build/x86_64"
- name: Build universal mac app bundle
if: runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15
- name: Delete intermediate per-arch artifacts
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v5
with:
name: |
OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}
# Thanks to RaySajuuk, it's working now
- name: Sign app and notary
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && inputs.os == 'orca-macos-arm64'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
@@ -162,7 +217,7 @@ jobs:
fi
- name: Create DMG without notary
if: github.ref != 'refs/heads/main' && inputs.os == 'orca-macos-arm64'
if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg
@@ -181,22 +236,22 @@ jobs:
fi
- name: Upload artifacts mac
if: inputs.os == 'orca-macos-arm64'
uses: actions/upload-artifact@v6
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Mac_universal_${{ env.ver }}
path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
- name: Upload OrcaSlicer_profile_validator DMG mac
if: inputs.os == 'orca-macos-arm64'
uses: actions/upload-artifact@v6
if: runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_profile_validator_Mac_universal_DMG_${{ env.ver }}
path: ${{ github.workspace }}/OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
if-no-files-found: ignore
- name: Deploy Mac release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'orca-macos-arm64'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -207,7 +262,7 @@ jobs:
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
- name: Deploy Mac OrcaSlicer_profile_validator DMG release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'orca-macos-arm64'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -219,17 +274,17 @@ jobs:
# Windows
- name: setup MSVC
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v2
- name: Install nsis
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
run: |
dir "C:/Program Files (x86)/Windows Kits/10/Include"
choco install nsis
- name: Build slicer Win
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}
env:
WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
@@ -237,53 +292,53 @@ jobs:
run: .\build_release_vs.bat slicer
- name: Create installer Win
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build
run: |
cpack -G NSIS
- name: Pack app
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}/build
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer'
- name: Pack PDB
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build/src/Release
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb'
- name: Upload artifacts Win zip
if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6
if: runner.os == 'Windows'
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Windows_${{ env.ver }}_portable
path: ${{ github.workspace }}/build/OrcaSlicer
- name: Upload artifacts Win installer
if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/OrcaSlicer*.exe
- name: Upload artifacts Win PDB
if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: PDB
path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z
- name: Upload OrcaSlicer_profile_validator Win
if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_profile_validator_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
- name: Deploy Windows release portable
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -294,7 +349,7 @@ jobs:
max_releases: 1
- name: Deploy Windows release installer
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -305,7 +360,7 @@ jobs:
max_releases: 1
- name: Deploy Windows OrcaSlicer_profile_validator release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -317,18 +372,16 @@ jobs:
# Ubuntu
- name: Apt-Install Dependencies
if: inputs.os == 'ubuntu-24.04'
if: runner.os == 'Linux' && !vars.SELF_HOSTED
uses: ./.github/actions/apt-install-deps
# Tests must built at the same time as the slicer;
# if you untangle them feel free to separate them here too
- name: Build slicer and tests
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
if: runner.os == 'Linux'
shell: bash
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
run: |
./build_linux.sh -istr
./build_linux.sh -istrlL
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
tar -cvpf build_tests.tar build/tests
@@ -336,8 +389,8 @@ jobs:
# Use tar because upload-artifacts won't always preserve directory structure
# and doesn't preserve file permissions
- name: Upload Test Artifact
if: inputs.os == 'ubuntu-24.04'
uses: actions/upload-artifact@v6
if: runner.os == 'Linux'
uses: actions/upload-artifact@v7
with:
name: ${{ github.sha }}-tests
overwrite: true
@@ -346,7 +399,7 @@ jobs:
if-no-files-found: error
- name: Build orca_custom_preset_tests
if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04'
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
working-directory: ${{ github.workspace }}/build/src/Release
shell: bash
run: |
@@ -355,28 +408,21 @@ jobs:
zip -r orca_custom_preset_tests.zip user/
- name: Upload artifacts Ubuntu
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env:
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
uses: actions/upload-artifact@v6
if: ${{ ! env.ACT && runner.os == 'Linux' }}
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
- name: Upload OrcaSlicer_profile_validator Ubuntu
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env:
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
uses: actions/upload-artifact@v6
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: actions/upload-artifact@v7
with:
name: OrcaSlicer_profile_validator_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/src/Release/OrcaSlicer_profile_validator'
- name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -386,7 +432,7 @@ jobs:
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
- name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: rickstaa/action-create-tag@v1
with:
tag: "nightly-builds"
@@ -395,9 +441,7 @@ jobs:
message: "nightly-builds"
- name: Deploy Ubuntu OrcaSlicer_profile_validator release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -408,7 +452,7 @@ jobs:
max_releases: 1
- name: Deploy orca_custom_preset_tests
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }}
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}

View File

@@ -15,12 +15,11 @@ on:
default: 'warning'
permissions:
pull-requests: write
contents: read
jobs:
check_translation:
check_profiles:
name: Check profiles
runs-on: ubuntu-24.04
steps:
@@ -62,11 +61,11 @@ jobs:
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_custom.log
exit ${PIPESTATUS[0]}
- name: Post error comment on PR
- name: Prepare comment artifact
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p ${{ runner.temp }}/profile-check-results
{
echo "## :x: Profile Validation Errors"
echo ""
@@ -100,16 +99,20 @@ jobs:
echo "---"
echo "*Please fix the above errors and push a new commit.*"
} > ${{ runner.temp }}/pr_comment.md
} > ${{ runner.temp }}/profile-check-results/pr_comment.md
gh pr comment ${{ github.event.pull_request.number }} --body-file ${{ runner.temp }}/pr_comment.md
echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt
- name: Upload comment artifact
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
uses: actions/upload-artifact@v7
with:
name: profile-check-results
path: ${{ runner.temp }}/profile-check-results/
retention-days: 1
- name: Fail if any check failed
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
echo "One or more profile checks failed. See above for details."
exit 1

View File

@@ -0,0 +1,46 @@
name: Post profile check comment
# NOTE: The workflow name in the 'workflows' filter below must match the 'name'
# field in check_profiles.yml exactly. If that name changes, update it here too.
on:
workflow_run:
workflows: ["Check profiles"]
types:
- completed
permissions:
pull-requests: write
jobs:
post_comment:
name: Post PR comment
runs-on: ubuntu-24.04
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: Download artifact
id: download
uses: actions/download-artifact@v8
continue-on-error: true
with:
name: profile-check-results
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ github.token }}
- name: Post comment on PR
if: ${{ steps.download.outcome == 'success' }}
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: |
if [ ! -f pr_number.txt ] || [ ! -f pr_comment.md ]; then
echo "No comment artifact found, skipping."
exit 0
fi
PR_NUMBER=$(cat pr_number.txt)
if ! [[ "$PR_NUMBER" =~ ^[0-9]+$ ]]; then
echo "Invalid PR number: $PR_NUMBER"
exit 1
fi
gh pr comment "$PR_NUMBER" --body-file pr_comment.md

14
.github/workflows/winget_updater.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
name: Publish to WinGet
on:
release:
types: [ released ]
jobs:
publish:
runs-on: windows-latest
steps:
- uses: vedantmgoyal9/winget-releaser@main
with:
identifier: SoftFever.OrcaSlicer
version: ${{ github.event.release.tag_name }}
token: ${{ secrets.WINGET_TOKEN }}
installers-regex: '\.exe$'

3
.gitignore vendored
View File

@@ -36,6 +36,7 @@ src/OrcaSlicer-doc/
/deps/DL_CACHE/
/deps/DL_CACHE
**/.flatpak-builder/
*.no-debug.yml
resources/profiles/user/default
*.code-workspace
deps_src/build/
@@ -43,3 +44,5 @@ test.js
/.cache/
.clangd
internal_docs/
*.flatpak
/flatpak-repo/

View File

@@ -42,7 +42,7 @@ cmake --build build/arm64 --config RelWithDebInfo --target all --
### Building on Linux
**Always use this command to build the project when testing build issues on Linux.**
```bash
cmake --build build/arm64 --config RelWithDebInfo --target all --
cmake --build build --config RelWithDebInfo --target all --
```

View File

@@ -89,10 +89,9 @@ else ()
endif ()
find_package(Git)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "")
message(STATUS "Specified git commit hash: $ENV{git_commit_hash}")
if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "")
message(STATUS "Specified git commit hash: $ENV{git_commit_hash}")
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Convert the given hash to short hash
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}"
@@ -100,17 +99,20 @@ if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
else()
# Check current Git commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
# No .git directory (e.g., Flatpak sandbox) — truncate directly
string(SUBSTRING "$ENV{git_commit_hash}" 0 7 GIT_COMMIT_HASH)
endif()
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Check current Git commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
endif()
if(DEFINED ENV{SLIC3R_STATIC})
@@ -122,7 +124,6 @@ endif()
option(SLIC3R_STATIC "Compile OrcaSlicer with static libraries (Boost, TBB, glew)" ${SLIC3R_STATIC_INITIAL})
option(SLIC3R_GUI "Compile OrcaSlicer with GUI components (OpenGL, wxWidgets)" 1)
option(SLIC3R_FHS "Assume OrcaSlicer is to be installed in a FHS directory structure" 0)
option(SLIC3R_WX_STABLE "Build against wxWidgets stable (3.0) as oppsed to dev (3.1) on Linux" 0)
option(SLIC3R_PROFILE "Compile OrcaSlicer with an invasive Shiny profiler" 0)
option(SLIC3R_PCH "Use precompiled headers" 1)
option(SLIC3R_MSVC_COMPILE_PARALLEL "Compile on Visual Studio in parallel" 1)
@@ -160,7 +161,7 @@ if (APPLE)
if (CMAKE_MACOSX_BUNDLE)
set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks)
endif()
SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.softfever3d.orca-slicer")
SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.orcaslicer.OrcaSlicer")
message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}")
endif ()
@@ -171,10 +172,7 @@ option(BUILD_TESTS "Build unit tests" OFF)
option(ORCA_TOOLS "Build Orca tools" OFF)
if (FLATPAK)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++20")
set(SLIC3R_PCH OFF CACHE BOOL "" FORCE)
set(SLIC3R_FHS ON CACHE BOOL "" FORCE)
set(BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(SLIC3R_DESKTOP_INTEGRATION OFF CACHE BOOL "" FORCE)
endif ()
@@ -436,7 +434,11 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
endif()
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
add_compile_options(-Wno-error=enum-constexpr-conversion)
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag(-Wno-error=enum-constexpr-conversion HAS_WNO_ERROR_ENUM_CONSTEXPR_CONV)
if(HAS_WNO_ERROR_ENUM_CONSTEXPR_CONV)
add_compile_options(-Wno-error=enum-constexpr-conversion)
endif()
endif()
#GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
@@ -451,9 +453,12 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-Wno-unknown-pragmas)
endif()
# Bit of a hack for flatpak building: compress the debug info with zstd to save space in CI
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0)
add_compile_options(-gz=zstd)
# Compress the debug info with zstd to save space in Flatpak CI builds
if(FLATPAK)
if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0) OR
("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0))
add_compile_options(-gz=zstd)
endif()
endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14)
@@ -487,7 +492,8 @@ if (APPLE)
endif ()
if(MSVC)
# 添加编译选项,忽略警告 C4305 (格式转换截断)
# Ignore truncating casts in initializers & constructors
# https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4305
add_compile_options(/wd4305)
endif()

View File

@@ -4,7 +4,7 @@
<img alt="OrcaSlicer logo" src="resources/images/OrcaSlicer.png" width="15%" height="15%">
</picture>
<a href="https://trendshift.io/repositories/952" target="_blank"><img src="https://trendshift.io/api/badge/repositories/952" alt="SoftFever%2FOrcaSlicer | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<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)
@@ -194,20 +194,16 @@ Thank you! :)
<a href="https://ko-fi.com/G2G5IP3CP"><img src="https://img.shields.io/badge/Support_me_on_Ko--fi-FF5E5B?style=flat&logo=ko-fi&logoColor=white" height="50"></a>
<a href="https://paypal.me/softfever3d"><img src="https://img.shields.io/badge/PayPal-003087?style=flat&logo=paypal&logoColor=fff" height="50"></a>
## Some background
## Some Background
OrcaSlicer was originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
Open-source slicing has always been built on a tradition of collaboration and attribution. [Slic3r](https://github.com/Slic3r/Slic3r), created by Alessandro Ranellucci and the RepRap community, laid the foundation. [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research built on Slic3r and acknowledged that heritage. [Bambu Studio](https://github.com/bambulab/BambuStudio) in turn forked from PrusaSlicer, and [SuperSlicer](https://github.com/supermerill/SuperSlicer) by @supermerill extended PrusaSlicer with community-driven enhancements. Each project carried the work of its predecessors forward, crediting those who came before.
[Bambu Studio](https://github.com/bambulab/BambuStudio) is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community.
OrcaSlicer incorporates a lot of features from [SuperSlicer](https://github.com/supermerill/SuperSlicer) by @supermerill
OrcaSlicer's logo is designed by community member Justin Levine (@freejstnalxndr).
OrcaSlicer began in that same spirit, drawing from BambuStudio, PrusaSlicer, and ideas inspired by CuraSlicer and SuperSlicer. But it has since grown far beyond its origins. Through relentless innovation — introducing advanced calibration tools, precise wall and seam control, tree supports, adaptive slicing, and hundreds of other features — OrcaSlicer has become the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry.
The OrcaSlicer logo was designed by community member Justin Levine (@freejstnalxndr).
# License
- **OrcaSlicer** is licensed under the GNU Affero General Public License, version 3. OrcaSlicer is based on Bambu Studio by BambuLab.
- **Bambu Studio** is licensed under the GNU Affero General Public License, version 3. Bambu Studio is based on PrusaSlicer by PrusaResearch.
- **PrusaSlicer** is licensed under the GNU Affero General Public License, version 3. PrusaSlicer is owned by Prusa Research. PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci.
- **Slic3r** is licensed under the GNU Affero General Public License, version 3. Slic3r was created by Alessandro Ranellucci with the help of many other contributors.
- **OrcaSlicer** is licensed under the GNU Affero General Public License, version 3.
- The **GNU Affero General Public License**, version 3 ensures that if you use any part of this software in any way (even behind a web server), your software must be released under the same license.
- OrcaSlicer includes a **pressure advance calibration pattern test** adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
- The **Bambu networking plugin** is based on non-free libraries from BambuLab. It is optional to the OrcaSlicer and provides extended functionalities for Bambulab printer users.

View File

@@ -5,6 +5,7 @@
# Based on the GitHub Actions workflow in .github/workflows/build_all.yml
set -e
SECONDS=0
# Colors for output
RED='\033[0;31m'
@@ -21,6 +22,8 @@ INSTALL_RUNTIME=false
JOBS=$(nproc)
FORCE_CLEAN=false
ENABLE_CCACHE=false
DISABLE_ROFILES_FUSE=false
NO_DEBUGINFO=true
CACHE_DIR=".flatpak-builder"
# Help function
@@ -36,6 +39,8 @@ show_help() {
echo " -c, --cleanup Clean build directory before building"
echo " -f, --force-clean Force clean build (disables caching)"
echo " --ccache Enable ccache for faster rebuilds (requires ccache in SDK)"
echo " --disable-rofiles-fuse Disable rofiles-fuse (workaround for FUSE issues)"
echo " --with-debuginfo Include debug info (slower builds, needed for Flathub)"
echo " --cache-dir DIR Flatpak builder cache directory [default: $CACHE_DIR]"
echo " -i, --install-runtime Install required Flatpak runtime and SDK"
echo " -h, --help Show this help message"
@@ -75,6 +80,14 @@ while [[ $# -gt 0 ]]; do
ENABLE_CCACHE=true
shift
;;
--disable-rofiles-fuse)
DISABLE_ROFILES_FUSE=true
shift
;;
--with-debuginfo)
NO_DEBUGINFO=false
shift
;;
--cache-dir)
CACHE_DIR="$2"
shift 2
@@ -186,22 +199,22 @@ echo -e "${GREEN}All required dependencies found${NC}"
# Install runtime and SDK if requested
if [[ "$INSTALL_RUNTIME" == true ]]; then
echo -e "${YELLOW}Installing GNOME runtime and SDK...${NC}"
flatpak install --user -y flathub org.gnome.Platform//48
flatpak install --user -y flathub org.gnome.Sdk//48
flatpak install --user -y flathub org.gnome.Platform//49
flatpak install --user -y flathub org.gnome.Sdk//49
fi
# Check if required runtime is available
if ! flatpak info --user org.gnome.Platform//48 &> /dev/null; then
echo -e "${RED}Error: GNOME Platform 48 runtime is not installed.${NC}"
if ! flatpak info --user org.gnome.Platform//49 &> /dev/null; then
echo -e "${RED}Error: GNOME Platform 49 runtime is not installed.${NC}"
echo "Run with -i flag to install it automatically, or install manually:"
echo "flatpak install --user flathub org.gnome.Platform//48"
echo "flatpak install --user flathub org.gnome.Platform//49"
exit 1
fi
if ! flatpak info --user org.gnome.Sdk//48 &> /dev/null; then
echo -e "${RED}Error: GNOME SDK 48 is not installed.${NC}"
if ! flatpak info --user org.gnome.Sdk//49 &> /dev/null; then
echo -e "${RED}Error: GNOME SDK 49 is not installed.${NC}"
echo "Run with -i flag to install it automatically, or install manually:"
echo "flatpak install --user flathub org.gnome.Sdk//48"
echo "flatpak install --user flathub org.gnome.Sdk//49"
exit 1
fi
@@ -242,8 +255,8 @@ mkdir -p "$BUILD_DIR"
rm -rf "$BUILD_DIR/build-dir"
# Check if flatpak manifest exists
if [[ ! -f "./scripts/flatpak/io.github.softfever.OrcaSlicer.yml" ]]; then
echo -e "${RED}Error: Flatpak manifest not found at scripts/flatpak/io.github.softfever.OrcaSlicer.yml${NC}"
if [[ ! -f "./scripts/flatpak/com.orcaslicer.OrcaSlicer.yml" ]]; then
echo -e "${RED}Error: Flatpak manifest not found at scripts/flatpak/com.orcaslicer.OrcaSlicer.yml${NC}"
exit 1
fi
@@ -279,6 +292,7 @@ BUILDER_ARGS=(
--verbose
--state-dir="$CACHE_DIR"
--jobs="$JOBS"
--mirror-screenshots-url=https://dl.flathub.org/media/
)
# Add force-clean only if explicitly requested (disables caching)
@@ -295,21 +309,40 @@ if [[ "$ENABLE_CCACHE" == true ]]; then
echo -e "${GREEN}Using ccache for compiler caching${NC}"
fi
# Disable rofiles-fuse if requested (workaround for FUSE issues)
if [[ "$DISABLE_ROFILES_FUSE" == true ]]; then
BUILDER_ARGS+=(--disable-rofiles-fuse)
echo -e "${YELLOW}rofiles-fuse disabled${NC}"
fi
# Use a temp manifest with no-debuginfo if requested
MANIFEST="scripts/flatpak/com.orcaslicer.OrcaSlicer.yml"
if [[ "$NO_DEBUGINFO" == true ]]; then
MANIFEST="scripts/flatpak/com.orcaslicer.OrcaSlicer.no-debug.yml"
sed '/^build-options:/a\ no-debuginfo: true\n strip: true' \
scripts/flatpak/com.orcaslicer.OrcaSlicer.yml > "$MANIFEST"
echo -e "${YELLOW}Debug info disabled (using temp manifest)${NC}"
fi
if ! flatpak-builder \
"${BUILDER_ARGS[@]}" \
"$BUILD_DIR/build-dir" \
scripts/flatpak/io.github.softfever.OrcaSlicer.yml; then
"$MANIFEST"; then
echo -e "${RED}Error: flatpak-builder failed${NC}"
echo -e "${YELLOW}Check the build log above for details${NC}"
rm -f "scripts/flatpak/com.orcaslicer.OrcaSlicer.no-debug.yml"
exit 1
fi
# Clean up temp manifest
rm -f "scripts/flatpak/com.orcaslicer.OrcaSlicer.no-debug.yml"
# Create bundle
echo -e "${YELLOW}Creating Flatpak bundle...${NC}"
if ! flatpak build-bundle \
"$BUILD_DIR/repo" \
"$BUNDLE_NAME" \
io.github.softfever.OrcaSlicer \
com.orcaslicer.OrcaSlicer \
--arch="$ARCH"; then
echo -e "${RED}Error: Failed to create Flatpak bundle${NC}"
exit 1
@@ -328,10 +361,10 @@ echo -e "${BLUE}To install the Flatpak:${NC}"
echo -e "flatpak install --user $BUNDLE_NAME"
echo ""
echo -e "${BLUE}To run OrcaSlicer:${NC}"
echo -e "flatpak run io.github.softfever.OrcaSlicer"
echo -e "flatpak run com.orcaslicer.OrcaSlicer"
echo ""
echo -e "${BLUE}To uninstall:${NC}"
echo -e "flatpak uninstall --user io.github.softfever.OrcaSlicer"
echo -e "flatpak uninstall --user com.orcaslicer.OrcaSlicer"
echo ""
if [[ "$FORCE_CLEAN" != true ]]; then
echo -e "${BLUE}Cache Management:${NC}"
@@ -339,3 +372,6 @@ if [[ "$FORCE_CLEAN" != true ]]; then
echo -e "• To force a clean build: $0 -f"
echo -e "• To clean cache manually: rm -rf $CACHE_DIR"
fi
elapsed=$SECONDS
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))

View File

@@ -1,5 +1,6 @@
#!/usr/bin/env bash
set -e # Exit immediately if a command exits with a non-zero status.
SECONDS=0
SCRIPT_NAME=$(basename "$0")
SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
@@ -151,6 +152,8 @@ elif [[ "${DISTRIBUTION_LIKE}" == *"debian"* ]] || [[ "${DISTRIBUTION_LIKE}" ==
DISTRIBUTION="debian"
elif [[ "${DISTRIBUTION_LIKE}" == *"arch"* ]] ; then
DISTRIBUTION="arch"
elif [[ "${DISTRIBUTION_LIKE}" == *"suse"* ]] ; then
DISTRIBUTION="suse"
fi
if [ ! -f "./scripts/linux.d/${DISTRIBUTION}" ] ; then
@@ -266,4 +269,7 @@ if [[ -n "${BUILD_IMAGE}" || -n "${BUILD_ORCA}" ]] ; then
popd > /dev/null # build
fi
elapsed=$SECONDS
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))
popd > /dev/null # ${SCRIPT_PATH}

View File

@@ -2,8 +2,9 @@
set -e
set -o pipefail
SECONDS=0
while getopts ":dpa:snt:xbc:1Th" opt; do
while getopts ":dpa:snt:xbc:i:1Tuh" opt; do
case "${opt}" in
d )
export BUILD_TARGET="deps"
@@ -34,21 +35,29 @@ while getopts ":dpa:snt:xbc:1Th" opt; do
c )
export BUILD_CONFIG="$OPTARG"
;;
i )
export CMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH:+$CMAKE_IGNORE_PREFIX_PATH;}$OPTARG"
;;
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
;;
T )
export BUILD_TESTS="1"
;;
u )
export BUILD_TARGET="universal"
;;
h ) echo "Usage: ./build_release_macos.sh [-d]"
echo " -d: Build deps only"
echo " -a: Set ARCHITECTURE (arm64 or x86_64 or universal)"
echo " -s: Build slicer only"
echo " -u: Build universal app only (requires existing arm64 and x86_64 app bundles)"
echo " -n: Nightly build"
echo " -t: Specify minimum version of the target platform, default is 11.3"
echo " -x: Use Ninja Multi-Config CMake generator, default is Xcode"
echo " -b: Build without reconfiguring CMake"
echo " -c: Set CMake build configuration, default is Release"
echo " -i: Add a prefix to ignore during CMake dependency discovery (repeatable), defaults to /opt/local:/usr/local:/opt/homebrew"
echo " -1: Use single job for building"
echo " -T: Build and run tests"
exit 0
@@ -89,6 +98,10 @@ if [ -z "$OSX_DEPLOYMENT_TARGET" ]; then
export OSX_DEPLOYMENT_TARGET="11.3"
fi
if [ -z "$CMAKE_IGNORE_PREFIX_PATH" ]; then
export CMAKE_IGNORE_PREFIX_PATH="/opt/local:/usr/local:/opt/homebrew"
fi
CMAKE_VERSION=$(cmake --version | head -1 | sed 's/[^0-9]*\([0-9]*\).*/\1/')
if [ "$CMAKE_VERSION" -ge 4 ] 2>/dev/null; then
export CMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -104,6 +117,7 @@ echo " - BUILD_CONFIG: $BUILD_CONFIG"
echo " - BUILD_TARGET: $BUILD_TARGET"
echo " - CMAKE_GENERATOR: $SLICER_CMAKE_GENERATOR for Slicer, $DEPS_CMAKE_GENERATOR for deps"
echo " - OSX_DEPLOYMENT_TARGET: $OSX_DEPLOYMENT_TARGET"
echo " - CMAKE_IGNORE_PREFIX_PATH: $CMAKE_IGNORE_PREFIX_PATH"
echo
# if which -s brew; then
@@ -147,6 +161,7 @@ function build_deps() {
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
-DCMAKE_OSX_ARCHITECTURES:STRING="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH}" \
${CMAKE_POLICY_COMPAT}
fi
cmake --build . --config "$BUILD_CONFIG" --target deps
@@ -188,6 +203,7 @@ function build_slicer() {
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
-DCMAKE_OSX_ARCHITECTURES="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH}" \
${CMAKE_POLICY_COMPAT}
fi
cmake --build . --config "$BUILD_CONFIG" --target "$SLICER_BUILD_TARGET"
@@ -249,48 +265,54 @@ function build_slicer() {
done
}
function lipo_dir() {
local universal_dir="$1"
local x86_64_dir="$2"
# Find all Mach-O files in the universal (arm64-based) copy and lipo them
while IFS= read -r -d '' f; do
local rel="${f#"$universal_dir"/}"
local x86="$x86_64_dir/$rel"
if [ -f "$x86" ]; then
echo " lipo: $rel"
lipo -create "$f" "$x86" -output "$f.tmp"
mv "$f.tmp" "$f"
else
echo " warning: no x86_64 counterpart for $rel, keeping arm64 only"
fi
done < <(find "$universal_dir" -type f -print0 | while IFS= read -r -d '' candidate; do
if file "$candidate" | grep -q "Mach-O"; then
printf '%s\0' "$candidate"
fi
done)
}
function build_universal() {
echo "Building universal binary..."
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$ARCH"
# Create universal binary
echo "Creating universal binary..."
# PROJECT_BUILD_DIR="$PROJECT_DIR/build_Universal"
ARM64_APP="$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer.app"
X86_64_APP="$PROJECT_DIR/build/x86_64/OrcaSlicer/OrcaSlicer.app"
mkdir -p "$PROJECT_BUILD_DIR/OrcaSlicer"
UNIVERSAL_APP="$PROJECT_BUILD_DIR/OrcaSlicer/OrcaSlicer.app"
rm -rf "$UNIVERSAL_APP"
cp -R "$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer.app" "$UNIVERSAL_APP"
# Get the binary path inside the .app bundle
BINARY_PATH="Contents/MacOS/OrcaSlicer"
# Create universal binary using lipo
lipo -create \
"$PROJECT_DIR/build/x86_64/OrcaSlicer/OrcaSlicer.app/$BINARY_PATH" \
"$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer.app/$BINARY_PATH" \
-output "$UNIVERSAL_APP/$BINARY_PATH"
echo "Universal binary created at $UNIVERSAL_APP"
cp -R "$ARM64_APP" "$UNIVERSAL_APP"
echo "Creating universal binaries for OrcaSlicer.app..."
lipo_dir "$UNIVERSAL_APP" "$X86_64_APP"
echo "Universal OrcaSlicer.app created at $UNIVERSAL_APP"
# Create universal binary for profile validator if it exists
if [ -f "$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ] && \
[ -f "$PROJECT_DIR/build/x86_64/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ]; then
echo "Creating universal binary for OrcaSlicer_profile_validator..."
ARM64_VALIDATOR="$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer_profile_validator.app"
X86_64_VALIDATOR="$PROJECT_DIR/build/x86_64/OrcaSlicer/OrcaSlicer_profile_validator.app"
if [ -d "$ARM64_VALIDATOR" ] && [ -d "$X86_64_VALIDATOR" ]; then
echo "Creating universal binaries for OrcaSlicer_profile_validator.app..."
UNIVERSAL_VALIDATOR_APP="$PROJECT_BUILD_DIR/OrcaSlicer/OrcaSlicer_profile_validator.app"
rm -rf "$UNIVERSAL_VALIDATOR_APP"
cp -R "$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer_profile_validator.app" "$UNIVERSAL_VALIDATOR_APP"
# Get the binary path inside the profile validator .app bundle
VALIDATOR_BINARY_PATH="Contents/MacOS/OrcaSlicer_profile_validator"
# Create universal binary using lipo
lipo -create \
"$PROJECT_DIR/build/x86_64/OrcaSlicer/OrcaSlicer_profile_validator.app/$VALIDATOR_BINARY_PATH" \
"$PROJECT_DIR/build/arm64/OrcaSlicer/OrcaSlicer_profile_validator.app/$VALIDATOR_BINARY_PATH" \
-output "$UNIVERSAL_VALIDATOR_APP/$VALIDATOR_BINARY_PATH"
echo "Universal binary for OrcaSlicer_profile_validator created at $UNIVERSAL_VALIDATOR_APP"
cp -R "$ARM64_VALIDATOR" "$UNIVERSAL_VALIDATOR_APP"
lipo_dir "$UNIVERSAL_VALIDATOR_APP" "$X86_64_VALIDATOR"
echo "Universal OrcaSlicer_profile_validator.app created at $UNIVERSAL_VALIDATOR_APP"
fi
}
@@ -305,16 +327,22 @@ case "${BUILD_TARGET}" in
slicer)
build_slicer
;;
universal)
build_universal
;;
*)
echo "Unknown target: $BUILD_TARGET. Available targets: deps, slicer, all."
echo "Unknown target: $BUILD_TARGET. Available targets: deps, slicer, universal, all."
exit 1
;;
esac
if [ "$ARCH" = "universal" ] && [ "$BUILD_TARGET" != "deps" ]; then
if [ "$ARCH" = "universal" ] && { [ "$BUILD_TARGET" = "all" ] || [ "$BUILD_TARGET" = "slicer" ]; }; then
build_universal
fi
if [ "1." == "$PACK_DEPS". ]; then
pack_deps
fi
elapsed=$SECONDS
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))

View File

@@ -1,6 +1,7 @@
@REM OrcaSlicer build script for Windows with VS auto-detect
@echo off
set WP=%CD%
set _START_TIME=%TIME%
@REM Check for Ninja Multi-Config option (-x)
set USE_NINJA=0
@@ -73,7 +74,7 @@ if "%1"=="pack" (
echo packing deps: OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip
%WP%/tools/7z.exe a OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
exit /b 0
goto :done
)
set debug=OFF
@@ -120,7 +121,7 @@ if "%USE_NINJA%"=="1" (
)
@echo off
if "%1"=="deps" exit /b 0
if "%1"=="deps" goto :done
:slicer
echo "building Orca Slicer..."
@@ -142,3 +143,16 @@ cd ..
call scripts/run_gettext.bat
cd %build_dir%
cmake --build . --target install --config %build_type%
:done
@echo off
for /f "tokens=1-3 delims=:.," %%a in ("%_START_TIME: =0%") do set /a "_start_s=%%a*3600+%%b*60+%%c"
for /f "tokens=1-3 delims=:.," %%a in ("%TIME: =0%") do set /a "_end_s=%%a*3600+%%b*60+%%c"
set /a "_elapsed=_end_s - _start_s"
if %_elapsed% lss 0 set /a "_elapsed+=86400"
set /a "_hours=_elapsed / 3600"
set /a "_remainder=_elapsed - _hours * 3600"
set /a "_mins=_remainder / 60"
set /a "_secs=_remainder - _mins * 60"
echo.
echo Build completed in %_hours%h %_mins%m %_secs%s

View File

@@ -11,7 +11,7 @@
<key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleIdentifier</key>
<string>com.softfever3d.orca-slicer</string>
<string>com.orcaslicer.OrcaSlicer</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>

View File

@@ -18,6 +18,7 @@ orcaslicer_add_cmake_project(Boost
-DBOOST_EXCLUDE_LIBRARIES:STRING=contract|fiber|numpy|stacktrace|wave|test
-DBOOST_LOCALE_ENABLE_ICU:BOOL=OFF # do not link to libicu, breaks compatibility between distros
-DBUILD_TESTING:BOOL=OFF
-DBOOST_IOSTREAMS_ENABLE_ZSTD:BOOL=OFF
"${_context_abi_line}"
"${_context_arch_line}"
)

5
deps/CMakeLists.txt vendored
View File

@@ -185,10 +185,14 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
-DCMAKE_DEBUG_POSTFIX:STRING=d
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
-DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
@@ -229,6 +233,7 @@ else()
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"

View File

@@ -5,6 +5,8 @@ find_package(OpenGL QUIET REQUIRED)
orcaslicer_add_cmake_project(
GLEW
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/glew
CMAKE_ARGS
-DGLEW_USE_EGL=OFF
)
if (MSVC)

View File

@@ -3,9 +3,17 @@ project(GLEW)
find_package(OpenGL REQUIRED)
if(OpenGL_EGL_FOUND)
message(STATUS "building GLEW for EGL (hope that wxWidgets agrees, otherwise you won't have any output!)")
# Allow parent project to control EGL usage.
# Default to OFF since OrcaSlicer forces GDK_BACKEND=x11 (using GLX contexts).
# GLEW must use glXGetProcAddressARB (GLX) to match wxWidgets GL canvas.
# Using EGL function loading with GLX contexts causes rendering failures.
option(GLEW_USE_EGL "Use EGL instead of GLX for OpenGL function loading" OFF)
if(GLEW_USE_EGL)
message(STATUS "Building GLEW with EGL support")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
else()
message(STATUS "Building GLEW with GLX support")
endif()
add_library(GLEW src/glew.c)

2
deps/GMP/GMP.cmake vendored
View File

@@ -65,7 +65,7 @@ else ()
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/GMP
PATCH_COMMAND git apply ${GMP_DIRECTORY_FLAG} --verbose ${CMAKE_CURRENT_LIST_DIR}/0001-GMP_GCC15.patch
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}" ${_gmp_build_tgt}
CONFIGURE_COMMAND env "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}" ${_gmp_build_tgt}
BUILD_COMMAND make -j
INSTALL_COMMAND make install
)

View File

@@ -31,7 +31,7 @@ else ()
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/MPFR
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND autoreconf -f -i &&
env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR} --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR} ${_gmp_build_tgt}
env "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR} --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR} ${_gmp_build_tgt}
BUILD_COMMAND make -j
INSTALL_COMMAND make install
DEPENDS dep_GMP

View File

@@ -16,6 +16,7 @@ orcaslicer_add_cmake_project(OCCT
#DEPENDS dep_Boost
DEPENDS ${FREETYPE_PKG}
CMAKE_ARGS
-DCMAKE_CXX_STANDARD=17
-DBUILD_LIBRARY_TYPE=${library_build_type}
-DUSE_TK=OFF
-DUSE_TBB=OFF

View File

@@ -21,7 +21,7 @@ else()
if(APPLE)
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
else()
set(_conf_cmd "./config")
set(_conf_cmd env "CC=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" "./config")
endif()
set(_cross_comp_prefix_line "")
set(_make_cmd make -j${NPROC})

2
deps/TBB/TBB.cmake vendored
View File

@@ -1,4 +1,4 @@
if (FLATPAK)
if (FLATPAK AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake)
else()
set(_patch_command "")

View File

@@ -1,8 +1,6 @@
set(_wx_toolkit "")
set(_wx_debug_postfix "")
set(_wx_shared -DwxBUILD_SHARED=OFF)
set(_wx_flatpak_patch "")
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_gtk_ver 2)
@@ -14,7 +12,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if (FLATPAK)
set(_wx_debug_postfix "d")
set(_wx_shared -DwxBUILD_SHARED=ON -DBUILD_SHARED_LIBS:BOOL=ON)
set(_wx_flatpak_patch PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-flatpak.patch)
endif ()
endif()
@@ -24,22 +21,13 @@ else ()
set(_wx_edge "-DwxUSE_WEBVIEW_EDGE=OFF")
endif ()
set(_wx_opengl_override "")
if(APPLE AND CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
set(_wx_opengl_override
-DOPENGL_gl_LIBRARY="-framework OpenGL"
-DOPENGL_glu_LIBRARY="-framework OpenGL"
)
endif()
orcaslicer_add_cmake_project(
wxWidgets
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
GIT_TAG v3.3.2
GIT_SHALLOW ON
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
${_wx_flatpak_patch}
CMAKE_ARGS
${_wx_opengl_override}
-DwxBUILD_PRECOMP=ON
${_wx_toolkit}
"-DCMAKE_DEBUG_POSTFIX:STRING=${_wx_debug_postfix}"
@@ -48,9 +36,9 @@ orcaslicer_add_cmake_project(
${_wx_shared}
-DwxUSE_MEDIACTRL=ON
-DwxUSE_DETECT_SM=OFF
-DwxUSE_UNICODE=ON
-DwxUSE_PRIVATE_FONTS=ON
-DwxUSE_OPENGL=ON
-DwxUSE_GLCANVAS_EGL=OFF
-DwxUSE_WEBREQUEST=ON
-DwxUSE_WEBVIEW=ON
${_wx_edge}
@@ -65,6 +53,29 @@ orcaslicer_add_cmake_project(
-DwxUSE_LIBJPEG=sys
-DwxUSE_LIBTIFF=OFF
-DwxUSE_EXPAT=sys
-DwxUSE_NANOSVG=OFF
)
# wxWidgets 3.3 cmake install doesn't include private headers.
# OrcaSlicer uses some of the private headers (for accessibility support).
# Copy the private headers directory after install.
if(MSVC)
set(_wx_inc_dest ${DESTDIR}/include/wx)
else()
set(_wx_inc_dest ${DESTDIR}/include/wx-3.3/wx)
endif()
ExternalProject_Add_Step(dep_wxWidgets copy_private_headers
DEPENDEES install
COMMENT "Copying wxWidgets private headers"
COMMAND ${CMAKE_COMMAND} -E copy_directory
<SOURCE_DIR>/include/wx/private
${_wx_inc_dest}/private
COMMAND ${CMAKE_COMMAND} -E copy_directory
<SOURCE_DIR>/include/wx/generic/private
${_wx_inc_dest}/generic/private
COMMAND ${CMAKE_COMMAND} -E copy_directory
<SOURCE_DIR>/include/wx/gtk/private
${_wx_inc_dest}/gtk/private
)
if (MSVC)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,3 @@
src/libslic3r/PresetBundle.cpp
src/slic3r/GUI/DeviceCore/DevBed.cpp
src/slic3r/GUI/DeviceCore/DevBed.h
src/slic3r/GUI/DeviceCore/DevConfig.h
@@ -68,6 +67,7 @@ src/slic3r/GUI/Gizmos/GLGizmoText.hpp
src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp
src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp
src/slic3r/GUI/GUI.cpp
src/slic3r/GUI/GUI_App.cpp
src/slic3r/GUI/GUI_AuxiliaryList.cpp
@@ -81,6 +81,7 @@ src/slic3r/GUI/GUI_ObjectTable.hpp
src/slic3r/GUI/GUI_ObjectTableSettings.cpp
src/slic3r/GUI/GUI_ObjectTableSettings.hpp
src/slic3r/GUI/GUI_Preview.cpp
src/slic3r/GUI/2DBed.cpp
src/slic3r/GUI/HintNotification.cpp
src/slic3r/GUI/IMSlider.cpp
src/slic3r/GUI/Widgets/SideTools.cpp
@@ -96,6 +97,7 @@ src/slic3r/GUI/Jobs/RotoptimizeJob.cpp
src/slic3r/GUI/Jobs/BindJob.cpp
src/slic3r/GUI/Jobs/PrintJob.cpp
src/slic3r/GUI/Jobs/SendJob.cpp
src/slic3r/GUI/Jobs/EmbossJob.cpp
src/slic3r/GUI/ThermalPreconditioningDialog.cpp
src/slic3r/GUI/ThermalPreconditioningDialog.hpp
src/slic3r/GUI/Jobs/SLAImportJob.cpp
@@ -165,7 +167,6 @@ src/slic3r/GUI/Tab.hpp
src/slic3r/GUI/UnsavedChangesDialog.cpp
src/slic3r/GUI/Auxiliary.cpp
src/slic3r/GUI/UpdateDialogs.cpp
src/slic3r/GUI/UnsavedChangesDialog.cpp
src/slic3r/GUI/ObjColorDialog.cpp
src/slic3r/GUI/SyncAmsInfoDialog.cpp
src/slic3r/GUI/WipeTowerDialog.cpp
@@ -178,12 +179,10 @@ src/slic3r/GUI/KBShortcutsDialog.cpp
src/slic3r/GUI/ReleaseNote.cpp
src/slic3r/GUI/ReleaseNote.hpp
src/slic3r/GUI/UpgradePanel.cpp
src/slic3r/GUI/UnsavedChangesDialog.cpp
src/slic3r/Utils/FixModelByWin10.cpp
src/slic3r/Utils/PresetUpdater.cpp
src/slic3r/Utils/Http.cpp
src/slic3r/Utils/Process.cpp
src/slic3r/GUI/Jobs/PrintJob.cpp
src/libslic3r/GCode.cpp
src/libslic3r/GCode/ToolOrdering.cpp
src/libslic3r/ExtrusionEntity.cpp
@@ -237,7 +236,6 @@ src/slic3r/Utils/Obico.cpp
src/slic3r/Utils/SimplyPrint.cpp
src/slic3r/Utils/Flashforge.cpp
src/slic3r/GUI/Jobs/OAuthJob.cpp
src/slic3r/GUI/BackgroundSlicingProcess.cpp
src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp
src/slic3r/GUI/PartSkipDialog.cpp
src/slic3r/GUI/PartSkipDialog.hpp
@@ -246,4 +244,8 @@ src/slic3r/GUI/SkipPartCanvas.hpp
src/slic3r/GUI/FilamentBitmapUtils.cpp
src/slic3r/GUI/FilamentBitmapUtils.hpp
src/slic3r/GUI/FilamentPickerDialog.cpp
src/slic3r/GUI/NetworkPluginDialog.cpp
src/slic3r/GUI/RammingChart.cpp
src/slic3r/GUI/StepMeshDialog.cpp
src/slic3r/GUI/FilamentPickerDialog.hpp
src/libslic3r/PresetBundle.cpp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "Afinia",
"version": "02.03.01.10",
"version": "02.03.02.60",
"force_update": "0",
"description": "Afinia configurations",
"machine_model_list": [
@@ -18,6 +18,26 @@
"name": "fdm_process_afinia_common",
"sub_path": "process/fdm_process_afinia_common.json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_HS_common",
"sub_path": "process/fdm_process_afinia_HS_common.json"
@@ -42,26 +62,6 @@
"name": "0.28mm Extra Draft @Afinia H+1(HS)",
"sub_path": "process/0.28mm Extra Draft @Afinia H+1(HS).json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.24_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.24_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.30_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.30_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.36_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.36_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.42_nozzle_0.6",
"sub_path": "process/fdm_process_afinia_0.42_nozzle_0.6.json"
},
{
"name": "fdm_process_afinia_0.18_nozzle_0.6_HS",
"sub_path": "process/fdm_process_afinia_0.18_nozzle_0.6_HS.json"
@@ -112,26 +112,18 @@
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Afinia PLA",
"sub_path": "filament/Afinia PLA.json"
},
{
"name": "Afinia Value PLA",
"sub_path": "filament/Afinia Value PLA.json"
},
{
"name": "Afinia ABS",
"sub_path": "filament/Afinia ABS.json"
@@ -141,32 +133,40 @@
"sub_path": "filament/Afinia ABS+.json"
},
{
"name": "Afinia Value ABS",
"sub_path": "filament/Afinia Value ABS.json"
},
{
"name": "Afinia TPU",
"sub_path": "filament/Afinia TPU.json"
},
{
"name": "Afinia PLA@HS",
"sub_path": "filament/Afinia PLA@HS.json"
},
{
"name": "Afinia Value PLA@HS",
"sub_path": "filament/Afinia Value PLA@HS.json"
"name": "Afinia ABS+@HS",
"sub_path": "filament/Afinia ABS+@HS.json"
},
{
"name": "Afinia ABS@HS",
"sub_path": "filament/Afinia ABS@HS.json"
},
{
"name": "Afinia Value ABS",
"sub_path": "filament/Afinia Value ABS.json"
},
{
"name": "Afinia Value ABS@HS",
"sub_path": "filament/Afinia Value ABS@HS.json"
},
{
"name": "Afinia ABS+@HS",
"sub_path": "filament/Afinia ABS+@HS.json"
"name": "Afinia PLA",
"sub_path": "filament/Afinia PLA.json"
},
{
"name": "Afinia PLA@HS",
"sub_path": "filament/Afinia PLA@HS.json"
},
{
"name": "Afinia Value PLA",
"sub_path": "filament/Afinia Value PLA.json"
},
{
"name": "Afinia Value PLA@HS",
"sub_path": "filament/Afinia Value PLA@HS.json"
},
{
"name": "Afinia TPU",
"sub_path": "filament/Afinia TPU.json"
},
{
"name": "Afinia TPU@HS",
@@ -191,4 +191,4 @@
"sub_path": "machine/Afinia H+1(HS) 0.6 nozzle.json"
}
]
}
}

View File

@@ -64,7 +64,7 @@
"top_surface_line_width": "0.42",
"top_surface_speed": "120",
"travel_speed": "400",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View File

@@ -0,0 +1,237 @@
{
"type": "machine",
"name": "Anet A8 Plus 0.4 nozzle",
"inherits": "",
"from": "User",
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "M600",
"cooling_tube_length": "5",
"cooling_tube_retraction": "91.5",
"default_bed_type": "",
"default_filament_profile": [
"Anycubic Generic PLA"
],
"default_print_profile": "0.20mm Standard @Anycubic 4MaxPro2",
"deretraction_speed": [
"25"
],
"disable_m73": "0",
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "1",
"enable_long_retraction_when_cut": "0",
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "140",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_radius": "65",
"extruder_colour": [
"#018001"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "marlin",
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "M104 S0 ; turn off extruder heating\nM140 S0 ; turn off bed heating\nM107 ; turn off fans\nG91 ; relative positioning\nG0 Z+0.5 ; move Z up a tiny bit\nG90 ; absolute positioning\nG0 X135 Y105 F{machine_max_speed_x[0]*60} ; move extruder to center position\nG0 Z190.5 F{machine_max_speed_z[0]*60} ; lower the plattform to Z min\nM84 ; steppers off\nG90 ; absolute positioning\n",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"1250",
"1250"
],
"machine_max_acceleration_retracting": [
"1250",
"1250"
],
"machine_max_acceleration_travel": [
"1500",
"1500"
],
"machine_max_acceleration_x": [
"1000",
"900"
],
"machine_max_acceleration_y": [
"1000",
"900"
],
"machine_max_acceleration_z": [
"1000",
"100"
],
"machine_max_jerk_e": [
"5",
"5"
],
"machine_max_jerk_x": [
"6",
"6"
],
"machine_max_jerk_y": [
"6",
"6"
],
"machine_max_jerk_z": [
"0.2",
"0.2"
],
"machine_max_junction_deviation": [
"0",
"0"
],
"machine_max_speed_e": [
"120",
"120"
],
"machine_max_speed_x": [
"200",
"200"
],
"machine_max_speed_y": [
"200",
"200"
],
"machine_max_speed_z": [
"64",
"16"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "M601",
"machine_start_gcode": "G21 ; metric values\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 X0 Y0 ; home X and Y\nG28 Z0 ; home Z\nG1 Z30 F{machine_max_speed_z[0]*60} ; move Z a bit down to not blow on the bed edge while heating\nG1 X10 F3900 ; let some space on x to prevent the filament cooling exhaust from beeing blocked by the servo motor\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM106 S80 ; turn on fan to prevent air nozzle melt while heating up\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nM107 ; start with the fan off\nG28 X0 ; goto X home again\nG92 E0 ; zero the extruded length\nG1 Z0.2 F360 ; move plattform upwards\n; extrude material next to the plattform (comment or remove following lines to disable)\nG1 F180 E20 ; extrude some material next to the plattform\nG92 E0 ; zero the extruded length\nG1 E-[retraction_length] F{retraction_speed[0]*60} ; do a filament retract\nG92 E0 ; zero the extruded length again\nG1 X5 F3900 ; move sideways to get rid of that string\nG1 E[retraction_length] F{retraction_speed[0]*60} ; do a filament deretract with retract parameters\nG92 E0 ; zero the extruded length again\n; draw intro line (comment or remove following lines to disable)\nG1 X30 E5 F700 ; draw intro line\nG92 E0 ; zero the extruded length\nG1 E-[retraction_length] F{retraction_speed[0]*60} ; do a filament retract\nG1 X40 Z2.0 ; move away from the introline\nG92 E0 ; zero the extruded length again\nG1 E[retraction_length] F{retraction_speed[0]*60} ; do a filament deretract with retract parameters\n; end of intro line code\nM117 Printing...\nG5",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.3"
],
"max_resonance_avoidance_speed": "120",
"min_layer_height": [
"0.07"
],
"min_resonance_avoidance_speed": "70",
"nozzle_diameter": [
"0.4"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": "undefine",
"nozzle_volume": "0",
"parking_pos_retraction": "92",
"pellet_modded_printer": "0",
"preferred_orientation": "0",
"printable_area": [
"0x0",
"300x0",
"300x300",
"0x300"
],
"printable_height": "350",
"printer_model": "Anet A8 Plus",
"printer_notes": "",
"printer_settings_id": "Anet A8 Plus 0.4 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.4",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "1",
"resonance_avoidance": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"10"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"0"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"18"
],
"retraction_length": [
"2.5"
],
"retraction_minimum_travel": [
"2"
],
"retraction_speed": [
"35"
],
"scan_first_layer": "0",
"silent_mode": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"support_multi_bed_types": "0",
"template_custom_gcode": "",
"thumbnails": "48x48/PNG,300x300/PNG",
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"1"
],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Normal Lift"
],
"z_offset": "0"
}

View File

@@ -1,6 +1,6 @@
{
"name": "Anker",
"version": "02.03.01.20",
"version": "02.03.02.60",
"force_update": "0",
"description": "Anker configurations",
"machine_model_list": [

View File

@@ -81,7 +81,7 @@
"skirt_height": "1",
"brim_width": "5",
"brim_object_gap": "0.1",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"prime_tower_width": "60",
"wipe_tower_no_sparse_layers": "0",
"print_sequence": "by layer",

View File

@@ -1,6 +1,6 @@
{
"name": "Anycubic",
"version": "02.03.01.10",
"version": "02.03.02.60",
"force_update": "0",
"description": "Anycubic configurations",
"machine_model_list": [
@@ -56,6 +56,10 @@
"name": "Anycubic Kobra S1",
"sub_path": "machine/Anycubic Kobra S1.json"
},
{
"name": "Anycubic Predator",
"sub_path": "machine/Anycubic Predator.json"
},
{
"name": "Anycubic Vyper",
"sub_path": "machine/Anycubic Vyper.json"
@@ -63,10 +67,6 @@
{
"name": "Anycubic i3 Mega S",
"sub_path": "machine/Anycubic i3 Mega S.json"
},
{
"name": "Anycubic Predator",
"sub_path": "machine/Anycubic Predator.json"
}
],
"process_list": [
@@ -82,14 +82,14 @@
"name": "0.10mm Detail @Anycubic Kobra 3 0.2 nozzle",
"sub_path": "process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json"
},
{
"name": "0.12mm Detail @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle",
"sub_path": "process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json"
},
{
"name": "0.12mm Detail @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "0.15mm Optimal @Anycubic 4MaxPro2",
"sub_path": "process/0.15mm Optimal @Anycubic 4MaxPro2.json"
@@ -126,14 +126,14 @@
"name": "0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json"
},
{
"name": "0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle",
"sub_path": "process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json"
},
{
"name": "0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle",
"sub_path": "process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Anycubic 4MaxPro",
"sub_path": "process/0.20mm Standard @Anycubic 4MaxPro.json"
@@ -186,6 +186,10 @@
"name": "0.20mm Standard @Anycubic KobraPlus",
"sub_path": "process/0.20mm Standard @Anycubic KobraPlus.json"
},
{
"name": "0.20mm Standard @Anycubic Predator",
"sub_path": "process/0.20mm Standard @Anycubic Predator.json"
},
{
"name": "0.20mm Standard @Anycubic Vyper",
"sub_path": "process/0.20mm Standard @Anycubic Vyper.json"
@@ -202,14 +206,14 @@
"name": "0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle",
"sub_path": "process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json"
},
{
"name": "0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle",
"sub_path": "process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json"
},
{
"name": "0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle",
"sub_path": "process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json"
},
{
"name": "0.30mm Draft @Anycubic 4MaxPro2",
"sub_path": "process/0.30mm Draft @Anycubic 4MaxPro2.json"
@@ -249,10 +253,6 @@
{
"name": "0.40mm Standard @Anycubic Kobra 3 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json"
},
{
"name": "0.20mm Standard @Anycubic Predator",
"sub_path": "process/0.20mm Standard @Anycubic Predator.json"
}
],
"filament_list": [
@@ -506,6 +506,10 @@
"name": "Anycubic Kobra S1 0.4 nozzle",
"sub_path": "machine/Anycubic Kobra S1 0.4 nozzle.json"
},
{
"name": "Anycubic Predator 0.4 nozzle",
"sub_path": "machine/Anycubic Predator 0.4 nozzle.json"
},
{
"name": "Anycubic Vyper 0.4 nozzle",
"sub_path": "machine/Anycubic Vyper 0.4 nozzle.json"
@@ -513,10 +517,6 @@
{
"name": "Anycubic i3 Mega S 0.4 nozzle",
"sub_path": "machine/Anycubic i3 Mega S 0.4 nozzle.json"
},
{
"name": "Anycubic Predator 0.4 nozzle",
"sub_path": "machine/Anycubic Predator 0.4 nozzle.json"
}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "45",
"travel_speed": "60",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "60",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -99,7 +99,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "90",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "100",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0.02",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "60",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "45",
"travel_speed": "60",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "60",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -99,7 +99,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "90",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "100",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0.02",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "60",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "45",
"travel_speed": "60",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "85",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -99,7 +99,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "90",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "100",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0.02",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "70",
"travel_speed": "120",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -97,7 +97,7 @@
"gap_infill_speed": "30",
"sparse_infill_speed": "85",
"travel_speed": "180",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -83,7 +83,7 @@
"top_surface_pattern": "monotonicline",
"top_surface_line_width": "0.4",
"top_shell_thickness": "0.8",
"enable_prime_tower": "0",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",

View File

@@ -1,13 +1,9 @@
{
"name": "Artillery",
"version": "02.03.02.10",
"version": "02.03.02.60",
"force_update": "0",
"description": "Artillery configurations",
"machine_model_list": [
{
"name": "Artillery Sidewinder X1",
"sub_path": "machine/Artillery Sidewinder X1.json"
},
{
"name": "Artillery Genius",
"sub_path": "machine/Artillery Genius.json"
@@ -16,43 +12,143 @@
"name": "Artillery Genius Pro",
"sub_path": "machine/Artillery Genius Pro.json"
},
{
"name": "Artillery Sidewinder X2",
"sub_path": "machine/Artillery Sidewinder X2.json"
},
{
"name": "Artillery Hornet",
"sub_path": "machine/Artillery Hornet.json"
},
{
"name": "Artillery Sidewinder X3 Pro",
"sub_path": "machine/Artillery Sidewinder X3 Pro.json"
"name": "Artillery M1 Pro",
"sub_path": "machine/Artillery M1 Pro.json"
},
{
"name": "Artillery Sidewinder X1",
"sub_path": "machine/Artillery Sidewinder X1.json"
},
{
"name": "Artillery Sidewinder X2",
"sub_path": "machine/Artillery Sidewinder X2.json"
},
{
"name": "Artillery Sidewinder X3 Plus",
"sub_path": "machine/Artillery Sidewinder X3 Plus.json"
},
{
"name": "Artillery Sidewinder X4 Pro",
"sub_path": "machine/Artillery Sidewinder X4 Pro.json"
"name": "Artillery Sidewinder X3 Pro",
"sub_path": "machine/Artillery Sidewinder X3 Pro.json"
},
{
"name": "Artillery Sidewinder X4 Plus",
"sub_path": "machine/Artillery Sidewinder X4 Plus.json"
},
{
"name": "Artillery M1 Pro",
"sub_path": "machine/Artillery M1 Pro.json"
"name": "Artillery Sidewinder X4 Pro",
"sub_path": "machine/Artillery Sidewinder X4 Pro.json"
}
],
"process_list": [
{
"name": "0.08mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "0.16mm Optimal @Artillery X1",
"sub_path": "process/0.16mm Optimal @Artillery X1.json"
"name": "0.06mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.06mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.06mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.06mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.08mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.08mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.10mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.10mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.10mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.10mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.12mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.12mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.14mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.14mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.18mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.18mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.24mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.24mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.30mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.30mm Strength @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.30mm Strength @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.36mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.36mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.42mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.42mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.24mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.24mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.32mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.32mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.40mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.48mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.48mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.56mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.56mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.08mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.12mm Fine @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.12mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.15mm Optimal @Artillery Genius",
@@ -62,13 +158,21 @@
"name": "0.15mm Optimal @Artillery Genius Pro",
"sub_path": "process/0.15mm Optimal @Artillery Genius Pro.json"
},
{
"name": "0.16mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.16mm Optimal @Artillery Hornet",
"sub_path": "process/0.16mm Optimal @Artillery Hornet.json"
},
{
"name": "0.20mm Standard @Artillery X1",
"sub_path": "process/0.20mm Standard @Artillery X1.json"
"name": "0.16mm Optimal @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.16mm Optimal @Artillery X1",
"sub_path": "process/0.16mm Optimal @Artillery X1.json"
},
{
"name": "0.20mm Standard @Artillery Genius",
@@ -78,13 +182,49 @@
"name": "0.20mm Standard @Artillery Genius Pro",
"sub_path": "process/0.20mm Standard @Artillery Genius Pro.json"
},
{
"name": "0.20mm Standard @Artillery Hornet",
"sub_path": "process/0.20mm Standard @Artillery Hornet.json"
},
{
"name": "0.20mm Standard @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X1",
"sub_path": "process/0.20mm Standard @Artillery X1.json"
},
{
"name": "0.20mm Standard @Artillery X2",
"sub_path": "process/0.20mm Standard @Artillery X2.json"
},
{
"name": "0.20mm Standard @Artillery Hornet",
"sub_path": "process/0.20mm Standard @Artillery Hornet.json"
"name": "0.20mm Standard @Artillery X3Plus 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X3Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X4Plus 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Strength @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery Hornet",
"sub_path": "process/0.24mm Draft @Artillery Hornet.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery X1",
@@ -99,52 +239,8 @@
"sub_path": "process/0.25mm Draft @Artillery Genius Pro.json"
},
{
"name": "0.24mm Draft @Artillery Hornet",
"sub_path": "process/0.24mm Draft @Artillery Hornet.json"
},
{
"name": "0.20mm Standard @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.12mm Fine @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.12mm Fine @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.12mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.12mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.16mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.16mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.16mm Optimal @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Strength @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.20mm Strength @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.24mm Draft @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X4Plus 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X4Plus 0.4 nozzle.json"
"name": "0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.08mm Extra Fine @Artillery X4Plus 0.4 nozzle",
@@ -183,154 +279,94 @@
"sub_path": "process/0.28mm Extra Draft @Artillery X4Plus 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X3Plus 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X3Plus 0.4 nozzle.json"
"name": "0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.08mm Extra Fine @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery X3Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery X3Pro 0.4 nozzle.json"
"name": "0.08mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
"name": "0.12mm Fine @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.12mm Fine @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.06mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.06mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
"name": "0.12mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.12mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.06mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.06mm Standard @Artillery M1 Pro 0.2 nozzle.json"
"name": "0.16mm High Quality @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.16mm High Quality @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.08mm Extra Fine @Artillery M1 Pro 0.4 nozzle.json"
"name": "0.16mm Optimal @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.08mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
"name": "0.20mm Strength @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.20mm Strength @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.08mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.08mm Standard @Artillery M1 Pro 0.2 nozzle.json"
"name": "0.24mm Draft @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.24mm Draft @Artillery X4Pro 0.4 nozzle.json"
},
{
"name": "0.10mm High Quality @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.10mm High Quality @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.10mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.10mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.12mm Fine @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.12mm Fine @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.12mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.12mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.12mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.12mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.14mm Standard @Artillery M1 Pro 0.2 nozzle",
"sub_path": "process/0.14mm Standard @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "0.16mm High Quality @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.16mm High Quality @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.16mm Optimal @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.16mm Optimal @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.24mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.24mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.18mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.18mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.20mm Standard @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.20mm Standard @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.20mm Strength @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.20mm Strength @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.24mm Draft @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.24mm Draft @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.24mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.24mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle",
"sub_path": "process/0.28mm Extra Draft @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "0.30mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.30mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.30mm Strength @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.30mm Strength @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.32mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.32mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.36mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.36mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.40mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.40mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.42mm Standard @Artillery M1 Pro 0.6 nozzle",
"sub_path": "process/0.42mm Standard @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "0.48mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.48mm Standard @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "0.56mm Standard @Artillery M1 Pro 0.8 nozzle",
"sub_path": "process/0.56mm Standard @Artillery M1 Pro 0.8 nozzle.json"
"name": "0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle",
"sub_path": "process/0.28mm Extra Draft @Artillery X4Pro 0.4 nozzle.json"
}
],
"filament_list": [
{
"name": "Artillery PLA @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
"name": "Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
"name": "Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "fdm_filament_pet",
"sub_path": "filament/fdm_filament_pet.json"
"name": "Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "fdm_filament_abs",
@@ -340,6 +376,30 @@
"name": "fdm_filament_asa",
"sub_path": "filament/fdm_filament_asa.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_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "Artillery Generic ABS",
"sub_path": "filament/Artillery Generic ABS.json"
},
{
"name": "Artillery Generic ASA",
"sub_path": "filament/Artillery Generic ASA.json"
},
{
"name": "Artillery Generic PETG",
"sub_path": "filament/Artillery Generic PETG.json"
},
{
"name": "Artillery Generic PLA",
"sub_path": "filament/Artillery Generic PLA.json"
@@ -348,58 +408,106 @@
"name": "Artillery Generic PLA-CF",
"sub_path": "filament/Artillery Generic PLA-CF.json"
},
{
"name": "Artillery Generic PETG",
"sub_path": "filament/Artillery Generic PETG.json"
},
{
"name": "Artillery Generic ABS",
"sub_path": "filament/Artillery Generic ABS.json"
},
{
"name": "Artillery Generic TPU",
"sub_path": "filament/Artillery Generic TPU.json"
},
{
"name": "Artillery Generic ASA",
"sub_path": "filament/Artillery Generic ASA.json"
},
{
"name": "Artillery PLA Basic",
"sub_path": "filament/Artillery PLA Basic.json"
},
{
"name": "Artillery PLA Matte",
"sub_path": "filament/Artillery PLA Matte.json"
},
{
"name": "Artillery PLA Silk",
"sub_path": "filament/Artillery PLA Silk.json"
},
{
"name": "Artillery PLA Tough",
"sub_path": "filament/Artillery PLA Tough.json"
},
{
"name": "Artillery PETG",
"sub_path": "filament/Artillery PETG.json"
},
{
"name": "Artillery TPU",
"sub_path": "filament/Artillery TPU.json"
},
{
"name": "Artillery ABS",
"sub_path": "filament/Artillery ABS.json"
},
{
"name": "Artillery ABS @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery ABS @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery ASA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PA-CF @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PC @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PET @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PETG",
"sub_path": "filament/Artillery PETG.json"
},
{
"name": "Artillery PETG @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Basic",
"sub_path": "filament/Artillery PLA Basic.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Matte",
"sub_path": "filament/Artillery PLA Matte.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Silk",
"sub_path": "filament/Artillery PLA Silk.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Tough",
"sub_path": "filament/Artillery PLA Tough.json"
},
{
"name": "Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PVA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery TPU",
"sub_path": "filament/Artillery TPU.json"
},
{
"name": "Artillery TPU @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery ABS @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery ABS @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json"
@@ -412,10 +520,6 @@
"name": "Artillery ASA @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery ASA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery ASA @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json"
@@ -428,10 +532,6 @@
"name": "Artillery PET @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PET @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PET @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json"
@@ -444,10 +544,6 @@
"name": "Artillery PETG @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PETG @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PETG @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json"
@@ -457,93 +553,21 @@
"sub_path": "filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json"
"name": "Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json"
"name": "Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PA-CF @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PC @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json"
},
{
"name": "Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json"
"name": "Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery PVA @Artillery M1 Pro 0.2 nozzle",
"sub_path": "filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery PVA @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery PVA @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json"
@@ -552,10 +576,6 @@
"name": "Artillery PVA @Artillery M1 Pro 0.8 nozzle",
"sub_path": "filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json"
},
{
"name": "Artillery TPU @Artillery M1 Pro 0.4 nozzle",
"sub_path": "filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery TPU @Artillery M1 Pro 0.6 nozzle",
"sub_path": "filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json"
@@ -570,18 +590,10 @@
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "Artillery Sidewinder X1 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X1 0.4 nozzle.json"
},
{
"name": "Artillery Genius 0.4 nozzle",
"sub_path": "machine/Artillery Genius 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X2 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X2 0.4 nozzle.json"
},
{
"name": "Artillery Genius Pro 0.4 nozzle",
"sub_path": "machine/Artillery Genius Pro 0.4 nozzle.json"
@@ -591,28 +603,36 @@
"sub_path": "machine/Artillery Hornet 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X3 Pro 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X3 Pro 0.4 nozzle.json"
"name": "Artillery M1 Pro 0.4 nozzle",
"sub_path": "machine/Artillery M1 Pro 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X1 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X1 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X2 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X2 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X3 Plus 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X3 Plus 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X4 Pro 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X4 Pro 0.4 nozzle.json"
"name": "Artillery Sidewinder X3 Pro 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X3 Pro 0.4 nozzle.json"
},
{
"name": "Artillery Sidewinder X4 Plus 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X4 Plus 0.4 nozzle.json"
},
{
"name": "Artillery M1 Pro 0.2 nozzle",
"sub_path": "machine/Artillery M1 Pro 0.2 nozzle.json"
"name": "Artillery Sidewinder X4 Pro 0.4 nozzle",
"sub_path": "machine/Artillery Sidewinder X4 Pro 0.4 nozzle.json"
},
{
"name": "Artillery M1 Pro 0.4 nozzle",
"sub_path": "machine/Artillery M1 Pro 0.4 nozzle.json"
"name": "Artillery M1 Pro 0.2 nozzle",
"sub_path": "machine/Artillery M1 Pro 0.2 nozzle.json"
},
{
"name": "Artillery M1 Pro 0.6 nozzle",

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"260"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
}
]
}

View File

@@ -19,7 +19,6 @@
"filament_settings_id": [
"Artillery ABS @Artillery M1 Pro 0.4 nozzle"
],
"is_custom_defined": "0",
"slow_down_layer_time": [
"12"
],
@@ -103,7 +102,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.2.2"
]
}

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"260"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
}
]
}

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"260"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
}
]
}

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"270"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
}
]
}

View File

@@ -40,7 +40,6 @@
"filament_type": [
"ASA"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"260"
],
@@ -112,7 +111,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.2.2"
]
}

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"270"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
]
}

View File

@@ -220,7 +220,6 @@
"idle_temperature": [
"0"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"270"
],
@@ -283,6 +282,5 @@
],
"cool_plate_temp_initial_layer": [
"100"
],
"version": "2.1.1.0"
]
}

View File

@@ -1,11 +1,11 @@
{
"type": "filament",
"name": "Artillery Generic ABS",
"inherits": "fdm_filament_abs",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFB99",
"setting_id": "GFSA04",
"name": "Artillery Generic ABS",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_abs",
"filament_flow_ratio": [
"0.926"
],
@@ -13,10 +13,10 @@
"12"
],
"compatible_printers": [
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
]
}
}

View File

@@ -1,11 +1,11 @@
{
"type": "filament",
"name": "Artillery Generic ASA",
"inherits": "fdm_filament_asa",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFB98",
"setting_id": "GFSA04",
"name": "Artillery Generic ASA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_asa",
"filament_flow_ratio": [
"0.93"
],
@@ -13,10 +13,10 @@
"12"
],
"compatible_printers": [
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
]
}
}

View File

@@ -1,11 +1,11 @@
{
"type": "filament",
"name": "Artillery Generic PETG",
"inherits": "fdm_filament_pet",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFG99",
"setting_id": "GFSA04",
"name": "Artillery Generic PETG",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pet",
"reduce_fan_stop_start_freq": [
"1"
],
@@ -43,10 +43,10 @@
"; filament start gcode\n"
],
"compatible_printers": [
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
]
}
}

View File

@@ -1,11 +1,11 @@
{
"type": "filament",
"name": "Artillery Generic PLA-CF",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFL98",
"setting_id": "GFSA04",
"name": "Artillery Generic PLA-CF",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.95"
],
@@ -18,10 +18,10 @@
"slow_down_layer_time": [
"7"
],
"hot_plate_temp": [
"hot_plate_temp" : [
"60"
],
"hot_plate_temp_initial_layer": [
"hot_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
@@ -31,10 +31,10 @@
"200"
],
"compatible_printers": [
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
]
}
}

View File

@@ -1,11 +1,11 @@
{
"type": "filament",
"name": "Artillery Generic PLA",
"inherits": "fdm_filament_pla",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFL99",
"setting_id": "GFSA04",
"name": "Artillery Generic PLA",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"filament_flow_ratio": [
"0.98"
],
@@ -15,10 +15,10 @@
"slow_down_layer_time": [
"8"
],
"hot_plate_temp": [
"hot_plate_temp" : [
"60"
],
"hot_plate_temp_initial_layer": [
"hot_plate_temp_initial_layer" : [
"60"
],
"nozzle_temperature_initial_layer": [
@@ -28,10 +28,10 @@
"200"
],
"compatible_printers": [
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
"Artillery Sidewinder X1 0.4 nozzle",
"Artillery Genius 0.4 nozzle",
"Artillery Sidewinder X2 0.4 nozzle",
"Artillery Genius Pro 0.4 nozzle",
"Artillery Hornet 0.4 nozzle"
]
}
}

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