Compare commits

..

273 Commits

Author SHA1 Message Date
SoftFever
468993d5de more fix for build errors - Linux 2026-04-06 23:05:54 +08:00
SoftFever
be4b4ab6e1 fix build errors 2026-04-06 12:48:18 +08:00
SoftFever
0e1896e3f1 add a new mode to build in docker 2026-04-03 23:14:15 +08:00
SoftFever
2d83918fc5 Improve AppImage
1. fix  libbz2 soname differeence issue on appimage
2. Downgrade to 22.04 for better compatibility
3. improve appimage overall
2026-04-03 23:13:55 +08:00
SoftFever
75fe485de7 udpate flatpak metainfo for flathub build 2026-03-30 15:21:40 +08:00
SoftFever
c724a3f5f5 bump version to 2.3.2 2026-03-23 01:56:38 +08:00
SoftFever
d129af20ca Merge branch 'main' into release/v2.3 2026-03-23 01:56:04 +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
SoftFever
6187063190 bump to rc2 2026-03-06 12:12:40 +08:00
SoftFever
b9f93ffd99 Merge branch 'main' into release/v2.3 2026-03-06 12:11:47 +08: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
586118a875 Merge branch 'main' into release/v2.3 2026-03-06 11:14:54 +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
1705 changed files with 69535 additions and 43572 deletions

View File

@@ -55,29 +55,47 @@ jobs:
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:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
- os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }}
arch: arm64
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: ${{ matrix.os }}
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:
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: ${{ 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:
@@ -89,6 +107,7 @@ 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
@@ -96,7 +115,9 @@ jobs:
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: |
@@ -113,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
@@ -132,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:
@@ -152,7 +178,7 @@ 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
@@ -174,10 +200,20 @@ jobs:
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
manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml
cache: false
arch: ${{ matrix.variant.arch }}
upload-artifact: false
@@ -196,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

@@ -33,10 +33,10 @@ jobs:
- name: set outputs
id: set_outputs
env:
# Normalize macOS runner names so self-hosted and GitHub-hosted produce the same cache key
cache-os: ${{ contains(inputs.os, 'macos') && 'macos-arm64' || inputs.os }}
dep-folder-name: ${{ !contains(inputs.os, 'macos') && '/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=${{ 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 }}

View File

@@ -46,84 +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: contains(inputs.os, 'macos')
if: runner.os == 'macOS'
working-directory: ${{ github.workspace }}
run: |
if [ -z "${{ vars.SELF_HOSTED }}" ]; then
brew install automake texinfo libtool
fi
./build_release_macos.sh -dx ${{ !vars.SELF_HOSTED && '-1' || '' }} -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
./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: contains(inputs.os, 'macos')
# 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,6 +26,8 @@ jobs:
date:
ver:
ver_pure:
ubuntu-ver: '2204'
ubuntu-ver-str: '_Ubuntu2204'
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
steps:
@@ -31,6 +37,7 @@ jobs:
lfs: 'true'
- 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,16 +95,16 @@ jobs:
# Mac
- name: Install tools mac
if: contains(inputs.os, 'macos')
if: runner.os == 'macOS' && !inputs.macos-combine-only
run: |
if [ -z "${{ vars.SELF_HOSTED }}" ]; then
brew install libtool
brew list
fi
mkdir -p ${{ github.workspace }}/deps/build
mkdir -p ${{ github.workspace }}/deps/build/${{ inputs.arch }}
- name: Free disk space
if: contains(inputs.os, 'macos') && !vars.SELF_HOSTED
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 {} +
@@ -103,14 +112,58 @@ jobs:
df -hI /dev/disk3s1s1
- name: Build slicer mac
if: contains(inputs.os, 'macos')
if: runner.os == 'macOS' && !inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -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@v6
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@v7
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/')) && contains(inputs.os, 'macos')
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 }}
@@ -164,7 +217,7 @@ jobs:
fi
- name: Create DMG without notary
if: github.ref != 'refs/heads/main' && contains(inputs.os, 'macos')
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
@@ -183,14 +236,14 @@ jobs:
fi
- name: Upload artifacts mac
if: contains(inputs.os, 'macos')
if: runner.os == 'macOS' && inputs.macos-combine-only
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_Mac_universal_${{ env.ver }}
path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
- name: Upload OrcaSlicer_profile_validator DMG mac
if: contains(inputs.os, 'macos')
if: runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_profile_validator_Mac_universal_DMG_${{ env.ver }}
@@ -198,7 +251,7 @@ jobs:
if-no-files-found: ignore
- name: Deploy Mac release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && contains(inputs.os, 'macos')
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}
@@ -209,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' && contains(inputs.os, 'macos')
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}
@@ -221,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\'
@@ -239,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'
if: runner.os == 'Windows'
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_Windows_${{ env.ver }}_portable
path: ${{ github.workspace }}/build/OrcaSlicer
- name: Upload artifacts Win installer
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v6
with:
name: OrcaSlicer_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/OrcaSlicer*.exe
- name: Upload artifacts Win PDB
if: inputs.os == 'windows-latest'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v6
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'
if: runner.os == 'Windows' && !vars.SELF_HOSTED
uses: actions/upload-artifact@v6
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}
@@ -296,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}
@@ -307,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}
@@ -319,18 +372,17 @@ 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
./scripts/check_appimage_libs.sh ./build/package ./build/package/bin/orca-slicer
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
@@ -338,7 +390,7 @@ 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'
if: runner.os == 'Linux'
uses: actions/upload-artifact@v6
with:
name: ${{ github.sha }}-tests
@@ -348,7 +400,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: |
@@ -357,28 +409,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') || '' }}
if: ${{ ! env.ACT && runner.os == 'Linux' }}
uses: actions/upload-artifact@v6
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') || '' }}
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED }}
uses: actions/upload-artifact@v6
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}
@@ -388,7 +433,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"
@@ -397,9 +442,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}
@@ -410,7 +453,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@v4
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@v4
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})
@@ -160,7 +162,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 +173,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 +435,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 +454,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 +493,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()
@@ -922,7 +929,7 @@ elseif (SLIC3R_FHS)
install(DIRECTORY ${SLIC3R_RESOURCES_DIR}/ DESTINATION ${SLIC3R_FHS_RESOURCES}
PATTERN "*/udev" EXCLUDE
)
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
foreach(SIZE 32 128 192)
install(FILES ${SLIC3R_RESOURCES_DIR}/images/OrcaSlicer_${SIZE}px.png
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${SIZE}x${SIZE}/apps RENAME OrcaSlicer.png
@@ -931,7 +938,7 @@ elseif (SLIC3R_FHS)
elseif (CMAKE_MACOSX_BUNDLE)
# install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/OrcaSlicer.app/Contents/resources")
else ()
install(FILES src/dev-utils/platform/unix/OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(FILES src/dev-utils/platform/unix/com.orcaslicer.OrcaSlicer.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/resources/applications)
install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources")
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}")")
@@ -7,7 +8,7 @@ SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
pushd "${SCRIPT_PATH}" > /dev/null
function usage() {
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-F][-g][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
echo " -1: limit builds to one core (where possible)"
echo " -j N: limit builds to N cores (where possible)"
echo " -b: build in Debug mode"
@@ -16,6 +17,8 @@ function usage() {
echo " -d: download and build dependencies in ./deps/ (build prerequisite)"
echo " -D: dry run"
echo " -e: build in RelWithDebInfo mode"
echo " -F: rebuild the cached Docker/Podman runner image from scratch when used with -g"
echo " -g: run the requested build steps inside a Docker/Podman Ubuntu 24.04 container similar to the GitHub Actions Linux runner"
echo " -h: prints this help text"
echo " -i: build the Orca Slicer AppImage (optional)"
echo " -p: boost ccache hit rate by disabling precompiled headers (default: ON)"
@@ -27,6 +30,9 @@ function usage() {
echo " -L: use ld.lld as linker (if available)"
echo "For a first use, you want to './${SCRIPT_NAME} -u'"
echo " and then './${SCRIPT_NAME} -dsi'"
echo "For a GitHub Actions-like Linux build locally, use './${SCRIPT_NAME} -g -istrlL'"
echo "Use './${SCRIPT_NAME} -gF -istrlL' to rebuild the cached runner image first."
echo "Set ORCA_CONTAINER_CLI, ORCA_DOCKER_IMAGE, ORCA_DOCKER_BASE_IMAGE, or ORCA_DOCKER_CMAKE_VERSION to override the container runtime, cached image tag, base image, or CMake version."
}
SLIC3R_PRECOMPILED_HEADERS="ON"
@@ -34,60 +40,83 @@ SLIC3R_PRECOMPILED_HEADERS="ON"
unset name
BUILD_DIR=build
BUILD_CONFIG=Release
while getopts ":1j:bcCdDehiprstulL" opt ; do
FORWARDED_ARGS=()
while getopts ":1j:bcCdDeFghiprstulL" opt ; do
case ${opt} in
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
FORWARDED_ARGS+=("-1")
;;
j )
export CMAKE_BUILD_PARALLEL_LEVEL=$OPTARG
FORWARDED_ARGS+=("-j" "$OPTARG")
;;
b )
BUILD_DIR=build-dbg
BUILD_CONFIG=Debug
FORWARDED_ARGS+=("-b")
;;
c )
CLEAN_BUILD=1
FORWARDED_ARGS+=("-c")
;;
C )
COLORED_OUTPUT="-DCOLORED_OUTPUT=ON"
FORWARDED_ARGS+=("-C")
;;
d )
BUILD_DEPS="1"
FORWARDED_ARGS+=("-d")
;;
D )
DRY_RUN="1"
FORWARDED_ARGS+=("-D")
;;
e )
BUILD_DIR=build-dbginfo
BUILD_CONFIG=RelWithDebInfo
FORWARDED_ARGS+=("-e")
;;
F )
CLEAN_DOCKER_IMAGE="1"
;;
g )
USE_DOCKER="1"
;;
h ) usage
exit 1
;;
i )
BUILD_IMAGE="1"
FORWARDED_ARGS+=("-i")
;;
p )
SLIC3R_PRECOMPILED_HEADERS="OFF"
FORWARDED_ARGS+=("-p")
;;
r )
SKIP_RAM_CHECK="1"
FORWARDED_ARGS+=("-r")
;;
s )
BUILD_ORCA="1"
FORWARDED_ARGS+=("-s")
;;
t )
BUILD_TESTS="1"
FORWARDED_ARGS+=("-t")
;;
u )
export UPDATE_LIB="1"
FORWARDED_ARGS+=("-u")
;;
l )
USE_CLANG="1"
FORWARDED_ARGS+=("-l")
;;
L )
USE_LLD="1"
FORWARDED_ARGS+=("-L")
;;
* )
echo "Unknown argument '${opt}', aborting."
@@ -101,6 +130,11 @@ if [ ${OPTIND} -eq 1 ] ; then
exit 1
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] && [[ -z "${USE_DOCKER}" ]] ; then
echo "Error: -F requires -g."
exit 1
fi
function check_available_memory_and_disk() {
FREE_MEM_GB=$(free --gibi --total | grep 'Mem' | rev | cut --delimiter=" " --fields=1 | rev)
MIN_MEM_GB=10
@@ -138,6 +172,277 @@ function print_and_run() {
fi
}
function resolve_container_cli() {
if [[ -n "${ORCA_CONTAINER_CLI}" ]] ; then
if ! command -v "${ORCA_CONTAINER_CLI}" >/dev/null 2>&1 ; then
echo "Error: container runtime '${ORCA_CONTAINER_CLI}' was not found." >&2
exit 1
fi
echo "${ORCA_CONTAINER_CLI}"
return
fi
if command -v docker >/dev/null 2>&1 ; then
echo "docker"
return
fi
if command -v podman >/dev/null 2>&1 ; then
echo "podman"
return
fi
echo "Error: neither docker nor podman is available. Install one of them or set ORCA_CONTAINER_CLI." >&2
exit 1
}
function get_docker_runner_image() {
local base_image
local docker_cmake_version
local recipe_hash
local sanitized_base_image
local sanitized_cmake_version
if [[ -n "${ORCA_DOCKER_IMAGE}" ]] ; then
echo "${ORCA_DOCKER_IMAGE}"
return
fi
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
recipe_hash=$(find "${SCRIPT_PATH}/build_linux.sh" "${SCRIPT_PATH}/scripts/linux.d" -type f -print0 | sort -z | xargs -0 cat | sha256sum | cut -c1-12)
sanitized_base_image=$(echo "${base_image}" | tr '/:@' '---' | tr -cs 'A-Za-z0-9_.-' '-')
sanitized_cmake_version=$(echo "${docker_cmake_version:-system}" | tr -cs 'A-Za-z0-9_.-' '-')
echo "orcaslicer-linux-builder:${sanitized_base_image}-cmake-${sanitized_cmake_version}-${recipe_hash}"
}
function docker_runner_dockerfile() {
cat <<'EOF'
ARG BASE_IMAGE=ubuntu:24.04
FROM ${BASE_IMAGE}
ARG CMAKE_VERSION=4.3.0
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y sudo ca-certificates curl tar
COPY build_linux.sh /tmp/orcaslicer/build_linux.sh
COPY scripts/linux.d /tmp/orcaslicer/scripts/linux.d
WORKDIR /tmp/orcaslicer
RUN chmod +x ./build_linux.sh
RUN ./build_linux.sh -ur
RUN if [[ -n "${CMAKE_VERSION}" ]] ; then \
case "$(uname -m)" in \
x86_64|amd64) cmake_arch="x86_64" ;; \
aarch64|arm64) cmake_arch="aarch64" ;; \
*) cmake_arch="" ;; \
esac ; \
if [[ -n "${cmake_arch}" ]] ; then \
cmake_root="/opt/cmake-${CMAKE_VERSION}-linux-${cmake_arch}" ; \
if ! curl -fsSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${cmake_arch}.tar.gz" | tar -xz -C /opt ; then \
echo "Warning: failed to install CMake ${CMAKE_VERSION}; falling back to the distro cmake package." ; \
elif [[ -d "${cmake_root}" ]] ; then \
ln -sf "${cmake_root}/bin/"* /usr/local/bin/ ; \
fi ; \
else \
echo "Skipping GitHub Actions CMake install for unsupported architecture $(uname -m)." ; \
fi ; \
fi
RUN rm -rf /var/lib/apt/lists/* /tmp/orcaslicer
EOF
}
function ensure_docker_runner_image() {
local container_cli
local base_image
local runner_image
local docker_cmake_version
local image_exists="0"
local force_rebuild="0"
local -a build_cmd
container_cli="$1"
runner_image="$2"
base_image="${ORCA_DOCKER_BASE_IMAGE:-ubuntu:24.04}"
docker_cmake_version="${ORCA_DOCKER_CMAKE_VERSION-4.3.0}"
if "${container_cli}" image inspect "${runner_image}" >/dev/null 2>&1 ; then
image_exists="1"
fi
if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] ; then
force_rebuild="1"
if [[ "${image_exists}" == "1" ]] ; then
echo "Removing cached container image ${runner_image} ..."
if [[ -z "${DRY_RUN}" ]] ; then
"${container_cli}" image rm -f "${runner_image}" >/dev/null
else
printf '%q ' "${container_cli}" image rm -f "${runner_image}"
echo
fi
image_exists="0"
fi
fi
if [[ "${image_exists}" == "1" ]] ; then
echo "Using cached container image ${runner_image}"
return
fi
build_cmd=(
"${container_cli}" build --pull
-t "${runner_image}"
--build-arg "BASE_IMAGE=${base_image}"
--build-arg "CMAKE_VERSION=${docker_cmake_version}"
)
if [[ "${force_rebuild}" == "1" ]] ; then
build_cmd+=(--no-cache)
fi
build_cmd+=(-f - "${SCRIPT_PATH}")
printf '%q ' "${build_cmd[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
docker_runner_dockerfile | "${build_cmd[@]}"
}
function run_in_docker() {
local container_cli
local runner_image
local container_workspace
local host_uid
local host_gid
local host_user
local -a build_args
local -a container_env
container_cli=$(resolve_container_cli)
runner_image=$(get_docker_runner_image)
host_uid=$(id -u)
host_gid=$(id -g)
host_user="${USER:-orca}"
container_workspace="/__w/OrcaSlicer/OrcaSlicer"
build_args=()
for item in "${FORWARDED_ARGS[@]}" ; do
if [[ "${item}" == "-u" ]] || [[ "${item}" == "-D" ]] ; then
continue
fi
build_args+=("${item}")
done
container_env=(
-e "CI=true"
-e "GITHUB_ACTIONS=true"
-e "GITHUB_WORKSPACE=${container_workspace}"
-e "GIT_CEILING_DIRECTORIES=${container_workspace}/deps/build"
-e "RUNNER_OS=Linux"
-e "RUNNER_TEMP=/tmp"
-e "HOST_UID=${host_uid}"
-e "HOST_GID=${host_gid}"
-e "HOST_USER=${host_user}"
)
if [[ -n "${CMAKE_BUILD_PARALLEL_LEVEL}" ]] ; then
container_env+=( -e "CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}" )
fi
if [[ -n "${ORCA_UPDATER_SIG_KEY}" ]] ; then
container_env+=( -e "ORCA_UPDATER_SIG_KEY=${ORCA_UPDATER_SIG_KEY}" )
fi
ensure_docker_runner_image "${container_cli}" "${runner_image}"
printf '%q ' "${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}"
echo
if [[ -n "${DRY_RUN}" ]] ; then
return
fi
"${container_cli}" run --rm -i \
-v "${SCRIPT_PATH}:${container_workspace}" \
-w "${container_workspace}" \
"${container_env[@]}" \
"${runner_image}" \
bash -s -- "${build_args[@]}" <<'EOF'
set -e
function create_builder_user() {
if [[ "${HOST_UID}" == "0" ]] ; then
HOST_USER=root
return
fi
if getent group "${HOST_GID}" >/dev/null 2>&1 ; then
HOST_GROUP=$(getent group "${HOST_GID}" | cut -d: -f1)
else
HOST_GROUP="orca-builder"
if getent group "${HOST_GROUP}" >/dev/null 2>&1 ; then
HOST_GROUP="orca-builder-${HOST_GID}"
fi
groupadd -g "${HOST_GID}" "${HOST_GROUP}"
fi
if getent passwd "${HOST_UID}" >/dev/null 2>&1 ; then
HOST_USER=$(getent passwd "${HOST_UID}" | cut -d: -f1)
usermod -g "${HOST_GROUP}" "${HOST_USER}"
elif id -u "${HOST_USER}" >/dev/null 2>&1 ; then
usermod -u "${HOST_UID}" -g "${HOST_GROUP}" "${HOST_USER}"
else
useradd -m -u "${HOST_UID}" -g "${HOST_GROUP}" -s /bin/bash "${HOST_USER}"
fi
echo "${HOST_USER} ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/orcaslicer-builder
chmod 0440 /etc/sudoers.d/orcaslicer-builder
}
create_builder_user
mkdir -p "${GITHUB_WORKSPACE}/deps/build/destdir"
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/deps/build"
if [[ -d "${GITHUB_WORKSPACE}/build" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbg" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbg"
fi
if [[ -d "${GITHUB_WORKSPACE}/build-dbginfo" ]] ; then
chown -R "${HOST_UID}:${HOST_GID}" "${GITHUB_WORKSPACE}/build-dbginfo"
fi
sudo -H -u "${HOST_USER}" env \
CMAKE_BUILD_PARALLEL_LEVEL="${CMAKE_BUILD_PARALLEL_LEVEL-}" \
GITHUB_WORKSPACE="${GITHUB_WORKSPACE}" \
GIT_CEILING_DIRECTORIES="${GIT_CEILING_DIRECTORIES-}" \
ORCA_UPDATER_SIG_KEY="${ORCA_UPDATER_SIG_KEY-}" \
bash -c '
set -e
cd "${GITHUB_WORKSPACE}"
if [[ "$#" -gt 0 ]] ; then
./build_linux.sh "$@"
else
echo "No build steps were requested after container setup."
fi
' bash "$@"
EOF
}
if [[ -n "${USE_DOCKER}" ]] ; then
run_in_docker
popd > /dev/null # ${SCRIPT_PATH}
exit 0
fi
# cmake 4.x compatibility workaround
export CMAKE_POLICY_VERSION_MINIMUM=3.5
@@ -266,4 +571,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_BZIP2:BOOL=OFF # avoid libbz2 soname differences in AppImage builds
-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}"

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()
@@ -37,7 +34,6 @@ orcaslicer_add_cmake_project(
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
GIT_SHALLOW ON
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${JPEG_PKG}
${_wx_flatpak_patch}
CMAKE_ARGS
${_wx_opengl_override}
-DwxBUILD_PRECOMP=ON

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.02.50",
"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.02.50",
"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.02.50",
"version": "02.03.02.60",
"force_update": "0",
"description": "Anycubic configurations",
"machine_model_list": [

View File

@@ -1,283 +0,0 @@
{
"adaptive_bed_mesh_margin": "5",
"auxiliary_fan": "0",
"bbl_use_printhost": "0",
"bed_custom_model": "D:/3D_Prints/PEi Sheet Anycubic Kobra Neo.stl",
"bed_custom_texture": "D:/3D_Prints/PEi Sheet Anycubic Kobra Neo.png",
"bed_exclude_area": [],
"bed_mesh_max": "210,205",
"bed_mesh_min": "32,5",
"bed_mesh_probe_distance": "0,0",
"bed_temperature_formula": "by_first_filament",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0 ;zero out extruded length for accurecy",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "_M600",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_bed_type": "",
"default_filament_profile": [
"SUNLU PLA @Anycubic Kobra Neo 0.6 nozzle"
],
"default_nozzle_volume_type": [
"Standard"
],
"default_print_profile": "0.4 Layer @Anycubic Kobra Neo 0.6 nozzle",
"deretraction_speed": [
"30"
],
"disable_m73": "0",
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"enable_power_loss_recovery": "printer_configuration",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "250",
"extruder_clearance_height_to_rod": "35",
"extruder_clearance_radius": "55",
"extruder_colour": [
"#FF4D4F"
],
"extruder_offset": [
"0x0"
],
"extruder_printable_area": [],
"extruder_printable_height": [
"0"
],
"extruder_type": [
"Direct Drive"
],
"extruder_variant_list": [
"Direct Drive Standard"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "0",
"fan_speedup_time": "2",
"file_start_gcode": "",
"from": "User",
"gcode_flavor": "klipper",
"grab_length": [
"0"
],
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"inherits": "",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;Layer {layer_num + 1} @ [layer_z]mm\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}\nM117 Layer {layer_num+1}/[total_layer_count] @ [layer_z]mm\nPLR_SAVE_PRINT_STATE_WITH_LAYER LAYER={layer_num + 1} LAYER_HEIGHT={layer_z}\n",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "_END_PRINT\n;total layers count = [total_layer_count]",
"machine_load_filament_time": "42",
"machine_max_acceleration_e": [
"2500",
"20000"
],
"machine_max_acceleration_extruding": [
"2500",
"20000"
],
"machine_max_acceleration_retracting": [
"2500",
"20000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"2500",
"15000"
],
"machine_max_acceleration_y": [
"2500",
"15000"
],
"machine_max_acceleration_z": [
"20",
"5000"
],
"machine_max_jerk_e": [
"4",
"10"
],
"machine_max_jerk_x": [
"8",
"20"
],
"machine_max_jerk_y": [
"8",
"20"
],
"machine_max_jerk_z": [
"4",
"5"
],
"machine_max_junction_deviation": [
"0",
"0"
],
"machine_max_speed_e": [
"100",
"80"
],
"machine_max_speed_x": [
"250",
"600"
],
"machine_max_speed_y": [
"250",
"600"
],
"machine_max_speed_z": [
"20",
"10"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\n;;;;; PLR_RESUME - INITIAL PRINTER SETUP STARTS ;;;;;\nPLR_DISABLE\n_START_PRINT BED_TEMP=[first_layer_bed_temperature] EXTRUDER_TEMP=[first_layer_temperature]\nPLR_ENABLE\n;;;;; PLR_RESUME - PRINT GCODE STARTS ;;;;;",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"master_extruder_id": "1",
"max_layer_height": [
"0.48"
],
"max_resonance_avoidance_speed": "120",
"min_layer_height": [
"0.15"
],
"min_resonance_avoidance_speed": "70",
"name": "Anycubic Kobra Neo 0.6 nozzle",
"nozzle_diameter": [
"0.6"
],
"nozzle_flush_dataset": [
"0"
],
"nozzle_height": "4",
"nozzle_hrc": "0",
"nozzle_type": [
"undefine"
],
"nozzle_volume": [
"0"
],
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"physical_extruder_map": [
"0"
],
"preferred_orientation": "0",
"print_host": "yazan-minipc.local:5555",
"print_host_webui": "",
"printable_area": [
"0x0",
"222x0",
"222x222",
"0x222"
],
"printable_height": "250",
"printer_agent": "moonraker",
"printer_extruder_id": [
"1"
],
"printer_extruder_variant": [
"Direct Drive Standard"
],
"printer_model": "Anycubic Kobra Neo",
"printer_notes": "",
"printer_settings_id": "Anycubic Kobra Neo 0.6 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.6",
"printhost_apikey": "",
"printhost_authorization_type": "key",
"printhost_cafile": "",
"printhost_password": "",
"printhost_port": "",
"printhost_ssl_ignore_revoke": "0",
"printhost_user": "",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"resonance_avoidance": "0",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"259"
],
"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": [
"1"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"30"
],
"scan_first_layer": "0",
"silent_mode": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "0",
"support_chamber_temp_control": "0",
"support_multi_bed_types": "0",
"support_object_skip_flush": "0",
"template_custom_gcode": "",
"thumbnails": "32x32/PNG, 300x300/PNG",
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "1",
"use_relative_e_distances": "1",
"version": "2.2.0.4",
"wipe": [
"0"
],
"wipe_distance": [
"2"
],
"wrapping_detection_gcode": "",
"wrapping_detection_layers": "20",
"wrapping_exclude_area": [],
"z_hop": [
"0"
],
"z_hop_types": [
"Auto Lift"
],
"z_offset": "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": "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

@@ -1,364 +0,0 @@
{
"accel_to_decel_enable": "0",
"accel_to_decel_factor": "50%",
"align_infill_direction_to_model": "1",
"alternate_extra_wall": "0",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_density": "100%",
"bottom_surface_pattern": "concentric",
"bridge_acceleration": "50%",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "1.5",
"bridge_no_support": "0",
"bridge_speed": "10",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0.4",
"brim_type": "no_brim",
"brim_use_efc_outline": "1",
"brim_width": "5",
"calib_flowrate_topinfill_special_order": "0",
"compatible_printers": [
"Anycubic Kobra Neo 0.6 nozzle"
],
"compatible_printers_condition": "",
"counterbore_hole_bridging": "none",
"default_acceleration": "2500",
"default_jerk": "0",
"default_junction_deviation": "0",
"detect_narrow_internal_solid_infill": "1",
"detect_overhang_wall": "1",
"detect_thin_wall": "1",
"dont_filter_internal_bridges": "disabled",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.2",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "0",
"enable_extra_bridge_layer": "disabled",
"enable_overhang_speed": "1",
"enable_prime_tower": "0",
"enable_support": "1",
"enable_tower_interface_cooldown_during_tower": "0",
"enable_tower_interface_features": "0",
"enable_wrapping_detection": "0",
"enforce_support_layers": "0",
"ensure_vertical_shell_thickness": "ensure_critical_only",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "0",
"extra_solid_infills": "",
"extrusion_rate_smoothing_external_perimeter_only": "0",
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
"fill_multiline": "1",
"filter_out_gap_fill": "0.6",
"first_layer_flow_ratio": "1",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"from": "User",
"fuzzy_skin": "none",
"fuzzy_skin_first_layer": "0",
"fuzzy_skin_mode": "displacement",
"fuzzy_skin_noise_type": "classic",
"fuzzy_skin_octaves": "4",
"fuzzy_skin_persistence": "0.5",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_scale": "1",
"fuzzy_skin_thickness": "0.3",
"gap_fill_flow_ratio": "1",
"gap_fill_target": "topbottom",
"gap_infill_speed": "50",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "1e+09",
"infill_anchor_max": "1e+09",
"infill_combination": "0",
"infill_combination_max_layer_height": "100%",
"infill_direction": "45",
"infill_jerk": "9",
"infill_lock_depth": "1",
"infill_overhang_angle": "60",
"infill_shift_step": "0.4",
"infill_wall_overlap": "20%",
"inherits": "",
"initial_layer_acceleration": "1500",
"initial_layer_infill_speed": "50",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.4",
"initial_layer_speed": "30",
"initial_layer_travel_speed": "50%",
"inner_wall_acceleration": "2500",
"inner_wall_flow_ratio": "1",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0",
"inner_wall_speed": "70",
"interface_shells": "0",
"interlocking_beam": "0",
"interlocking_beam_layer_count": "2",
"interlocking_beam_width": "0.8",
"interlocking_boundary_avoidance": "2",
"interlocking_depth": "2",
"interlocking_orientation": "22.5",
"internal_bridge_angle": "0",
"internal_bridge_density": "100%",
"internal_bridge_flow": "1.5",
"internal_bridge_speed": "30",
"internal_solid_infill_acceleration": "100%",
"internal_solid_infill_flow_ratio": "1",
"internal_solid_infill_line_width": "0",
"internal_solid_infill_pattern": "monotonic",
"internal_solid_infill_speed": "70",
"ironing_angle": "0",
"ironing_angle_fixed": "0",
"ironing_flow": "10%",
"ironing_inset": "0",
"ironing_pattern": "rectilinear",
"ironing_spacing": "0.1",
"ironing_speed": "20",
"ironing_type": "no ironing",
"is_infill_first": "0",
"lateral_lattice_angle_1": "-45",
"lateral_lattice_angle_2": "45",
"layer_height": "0.4",
"line_width": "100%",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "60",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "3",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_length_factor": "0.75",
"min_skirt_length": "0",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"mmu_segmented_region_interlocking_depth": "0",
"mmu_segmented_region_max_width": "0",
"name": "0.4 Layer @Anycubic Kobra Neo 0.6 nozzle",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "0",
"ooze_prevention": "0",
"outer_wall_acceleration": "2500",
"outer_wall_flow_ratio": "1",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0",
"outer_wall_speed": "70",
"overhang_1_4_speed": "100%",
"overhang_2_4_speed": "100%",
"overhang_3_4_speed": "75%",
"overhang_4_4_speed": "50%",
"overhang_flow_ratio": "1",
"overhang_reverse": "0",
"overhang_reverse_internal_only": "0",
"overhang_reverse_threshold": "50%",
"post_process": [],
"precise_outer_wall": "0",
"precise_z_height": "0",
"preheat_steps": "1",
"preheat_time": "30",
"prime_tower_brim_width": "3",
"prime_tower_enable_framework": "0",
"prime_tower_flat_ironing": "0",
"prime_tower_infill_gap": "150%",
"prime_tower_skip_points": "1",
"prime_tower_width": "60",
"prime_volume": "45",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"print_flow_ratio": "1",
"print_order": "default",
"print_sequence": "by layer",
"print_settings_id": "0.4 Layer @Anycubic Kobra Neo 0.6 nozzle",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "100%",
"raft_first_layer_expansion": "5",
"raft_layers": "0",
"reduce_crossing_wall": "1",
"reduce_infill_retraction": "1",
"resolution": "0.005",
"role_based_wipe_speed": "1",
"scarf_angle_threshold": "155",
"scarf_joint_flow_ratio": "1",
"scarf_joint_speed": "100%",
"scarf_overhang_threshold": "40%",
"seam_gap": "10%",
"seam_position": "aligned",
"seam_slope_conditional": "0",
"seam_slope_entire_loop": "0",
"seam_slope_inner_walls": "0",
"seam_slope_min_length": "20",
"seam_slope_start_height": "0",
"seam_slope_steps": "10",
"seam_slope_type": "none",
"set_other_flow_ratios": "0",
"single_extruder_multi_material_priming": "0",
"single_loop_draft_shield": "0",
"skeleton_infill_density": "25%",
"skeleton_infill_line_width": "100%",
"skin_infill_density": "25%",
"skin_infill_depth": "2",
"skin_infill_line_width": "100%",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "50",
"skirt_start_angle": "-135",
"skirt_type": "combined",
"slice_closing_radius": "0.001",
"slicing_mode": "regular",
"slow_down_layers": "1",
"slowdown_for_curled_perimeters": "1",
"small_area_infill_flow_compensation": "1",
"small_area_infill_flow_compensation_model": [
"0,0",
"\n0.2,0.4444",
"\n0.4,0.6145",
"\n0.6,0.7059",
"\n0.8,0.7619",
"\n1.5,0.8571",
"\n2,0.8889",
"\n3,0.9231",
"\n5,0.9520",
"\n10,1"
],
"small_perimeter_speed": "0",
"small_perimeter_threshold": "0",
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_rotate_template": "45,135",
"sparse_infill_acceleration": "100%",
"sparse_infill_density": "10%",
"sparse_infill_filament": "1",
"sparse_infill_flow_ratio": "1",
"sparse_infill_line_width": "0",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_rotate_template": "",
"sparse_infill_speed": "70",
"spiral_finishing_flow_ratio": "0",
"spiral_mode": "0",
"spiral_mode_max_xy_smoothing": "200%",
"spiral_mode_smooth": "1",
"spiral_starting_flow_ratio": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "-5",
"support_angle": "0",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "2",
"support_bottom_interface_spacing": "0.2",
"support_bottom_z_distance": "0.4",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_flow_ratio": "1",
"support_interface_bottom_layers": "2",
"support_interface_filament": "0",
"support_interface_flow_ratio": "1",
"support_interface_loop_pattern": "0",
"support_interface_not_for_body": "1",
"support_interface_pattern": "auto",
"support_interface_spacing": "0.2",
"support_interface_speed": "50",
"support_interface_top_layers": "2",
"support_ironing": "0",
"support_ironing_flow": "10%",
"support_ironing_pattern": "rectilinear",
"support_ironing_spacing": "0.1",
"support_line_width": "0",
"support_object_first_layer_gap": "1",
"support_object_xy_distance": "1",
"support_on_build_plate_only": "0",
"support_remove_small_overhang": "0",
"support_speed": "50",
"support_style": "snug",
"support_threshold_angle": "40",
"support_threshold_overlap": "50%",
"support_top_z_distance": "0.34",
"support_type": "normal(auto)",
"symmetric_infill_y_axis": "0",
"thick_bridges": "0",
"thick_internal_bridges": "1",
"timelapse_type": "0",
"top_bottom_infill_wall_overlap": "20%",
"top_shell_layers": "3",
"top_shell_thickness": "0",
"top_solid_infill_flow_ratio": "1",
"top_surface_acceleration": "1500",
"top_surface_density": "100%",
"top_surface_jerk": "9",
"top_surface_line_width": "0",
"top_surface_pattern": "concentric",
"top_surface_speed": "60",
"travel_acceleration": "2500",
"travel_jerk": "12",
"travel_speed": "140",
"travel_speed_z": "0",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "40",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "10",
"tree_support_branch_diameter_organic": "4",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "0",
"version": "0.0.0.0",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "arachne",
"wall_loops": "2",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_before_external_loop": "1",
"wipe_on_loops": "1",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "0",
"wipe_tower_extra_flow": "100%",
"wipe_tower_extra_rib_length": "0",
"wipe_tower_extra_spacing": "100%",
"wipe_tower_filament": "0",
"wipe_tower_fillet_wall": "1",
"wipe_tower_max_purge_speed": "90",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rib_width": "8",
"wipe_tower_rotation_angle": "0",
"wipe_tower_wall_type": "rectangle",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "-0.02",
"xy_hole_compensation": "0.02"
}

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.50",
"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"
]
}
}

View File

@@ -1,19 +1,19 @@
{
"type": "filament",
"name": "Artillery Generic TPU",
"inherits": "fdm_filament_tpu",
"from": "system",
"setting_id": "GFSA04",
"filament_id": "GFU99",
"setting_id": "GFSA04",
"name": "Artillery Generic TPU",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"filament_max_volumetric_speed": [
"3.2"
],
"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

@@ -26,7 +26,7 @@
"8"
],
"additional_cooling_fan_speed": [
"70"
"0"
],
"filament_settings_id": [
"Artillery PA @Artillery M1 Pro 0.4 nozzle"
@@ -49,7 +49,6 @@
"slow_down_layer_time": [
"6"
],
"version": "2.1.2.2",
"compatible_printers": [
"Artillery M1 Pro 0.4 nozzle"
],
@@ -75,10 +74,10 @@
"1"
],
"hot_plate_temp": [
"50"
"100"
],
"hot_plate_temp_initial_layer": [
"50"
"100"
],
"slow_down_min_speed": [
"10"

View File

@@ -1,9 +1,9 @@
{
"from": "system",
"type": "filament",
"name": "Artillery PA-CF @Artillery M1 Pro 0.4 nozzle",
"inherits": "Artillery Generic PLA",
"from": "system",
"instantiation": "true",
"is_custom_defined": "0",
"complete_print_exhaust_fan_speed": [
"0"
],
@@ -17,16 +17,16 @@
"30"
],
"fan_min_speed": [
"30"
"10"
],
"filament_flow_ratio": [
"0.93"
],
"filament_max_volumetric_speed": [
"6"
"4"
],
"additional_cooling_fan_speed": [
"100"
"0"
],
"filament_settings_id": [
"Artillery PA-CF @Artillery M1 Pro 0.4 nozzle"
@@ -35,10 +35,10 @@
"PA-CF"
],
"nozzle_temperature": [
"250"
"280"
],
"nozzle_temperature_initial_layer": [
"250"
"280"
],
"nozzle_temperature_range_high": [
"280"
@@ -49,7 +49,6 @@
"slow_down_layer_time": [
"2"
],
"version": "2.1.2.2",
"compatible_printers": [
"Artillery M1 Pro 0.4 nozzle"
],
@@ -69,16 +68,16 @@
"0.6"
],
"temperature_vitrification": [
"108"
"170"
],
"enable_pressure_advance": [
"1"
],
"hot_plate_temp": [
"50"
"100"
],
"hot_plate_temp_initial_layer": [
"50"
"100"
],
"slow_down_min_speed": [
"10"
@@ -96,10 +95,10 @@
"100"
],
"cool_plate_temp": [
"110"
"100"
],
"cool_plate_temp_initial_layer": [
"110"
"100"
],
"overhang_fan_speed": [
"80"

View File

@@ -34,7 +34,6 @@
"filament_type": [
"PC"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"295"
],
@@ -50,7 +49,6 @@
"slow_down_layer_time": [
"2"
],
"version": "2.1.2.2",
"compatible_printers": [
"Artillery M1 Pro 0.4 nozzle"
],
@@ -76,10 +74,10 @@
"1"
],
"hot_plate_temp": [
"50"
"110"
],
"hot_plate_temp_initial_layer": [
"50"
"110"
],
"slow_down_min_speed": [
"0"

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