No description
Find a file
Ioannis Giannakas 529c44d8e3
Enhancement: Adaptive Pressure advance (#5609)
* Adaptive Pressure advance options setup

* Dynamic PA - PCHIP interpolator code and tests

* Integrate dynamic PA with slicing code - emit new PA values per speed change

* Link adaptive PA to role change instead of speed change

* Adaptive PA - Alpha 2

Reduce the frequency of requested PA changes by introducing a "state" variable.
Implement user toggle for adapting PA for external walls for overhangs

* Hide adaptive PA for overhangs

* Convert Adaptive PA to use volumetric flow model and start preparing for converting to Gcode post processor

* Converted Dynamic PA to a post processing filter. Reverted changes in GCode cpp and created tagging mechanism to allow filter to apply PA changes.

* Removed adaptive PA for overhangs

* Foundations for two dimensional adaptive PA based on acceleration and volumetric flow speed

* Minor code cleanup and updating of tooltips

* Renaming files for better clarity and generate classes documentation

* Update src/libslic3r/PrintConfig.cpp

Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>

* Update src/libslic3r/PrintConfig.cpp

Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>

* Update src/libslic3r/PrintConfig.cpp

Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>

* Introduce average mm3_mm over the length of a multipath for adaptive PA

* Updates for multipath handling part 2

* Introduce average mm3_mm over the length of a multipath for adaptive PA

* Trigger PA evaluation more frequently to catch edge cases where speed changes across islands of the same feature type.

* Updates for multipath handling part 2

* Adaptive PA: Implement average flow estimation on loops

* Code formatting

* Fix adaptive PA not adapting for small disconnected external wall line segments.

* Updated to take max print speed of upcoming feature to calculate new PA value.

This is to resolve issue of incorrect PA value used when starting a new feature at an overhang.

* Code clean up

* Performance tuning

* Further performance tuning by reducing use of regex commands in the nested loops and fix bug preventing gcode line output

* Further performance tuning and tweaks to stop searching for max speed after the first travel move.

* Reduce debug information

* Updated debug info

* Fix an issue on seams on specific models when wipe before external perimeter was enabled. Also cleanup documentation and add new to-do's

* Prepare for adaptive PA for overhangs, fix wipe bug & clean up code and comments

* Initial commit for adapting PA when extruding fully overhanging perimeters

* Ignore wipe command when identifying current print speed

* Option to evaluate adaptive PA on overhang regions in preparation for Klipper experimental option testing

* Update to issue PA changes for varying flow conditions within the same feature

* Fix bug where adaptive PA was enabled erroneously for role changes and ignoring user's preference.

* Refactored some code

* More refactoring

* Some bug fixes and enabled comments only when verbose g-code is enabled

* Introduced dedicated PA option for bridges

* Code refactoring to optimise initialisation of PA processor (making it faster). Fix a bug where PA was not always set after a toolchange. Improve general error handling and robustness.

* Updates to adaptive PA tooltips

* Bridging PA check with Epsilon instead of 0.

* Adaptive PA: addressing comments

---------

Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
2024-07-28 22:52:08 +08:00
.devcontainer Add Devcontainer Support (#3777) 2024-01-27 14:16:30 +08:00
.github Revert "Revert "Some flatpak fixing (#5510)"" 2024-07-16 22:39:43 +08:00
.idea Merge remote-tracking branch 'BS/v1.7.2' 2023-08-26 16:13:57 +08:00
cmake fix an issue that orcaslicer:// didn't work on Mac 2024-05-24 19:42:32 +08:00
deps Revert "Revert "Some flatpak fixing (#5510)"" 2024-07-16 22:39:43 +08:00
doc [doc] Warn Marlin user that Linear Advance must be enabled in firmware to do the Pressure Advance/Linear Advance calibration (#6111) 2024-07-14 00:02:14 +08:00
flatpak Revert "Revert "Some flatpak fixing (#5510)"" 2024-07-16 22:39:43 +08:00
lib Change Application name to OrcaSlicer 2023-03-12 10:05:22 +08:00
linux.d CI: Build with ubuntu-24.04 (#5919) 2024-07-01 23:44:49 +08:00
localization/i18n Update Polish translation (#6163) 2024-07-25 22:33:56 +08:00
resources Update spanish translation (#6189) 2024-07-25 22:26:25 +08:00
sandboxes Support larger printer sizes by using 64-bit. 2024-05-10 23:47:08 +08:00
scripts Add filament vendors (CERPRiSE, FilamentOne, Tianse, and VOXELPLA) & rename Formfortura to Formfutura (#5472) 2024-05-29 00:32:04 +08:00
SoftFever_doc Add BigTreeTech as sponsor 2024-07-10 01:30:03 +08:00
src Enhancement: Adaptive Pressure advance (#5609) 2024-07-28 22:52:08 +08:00
t Add the full source of BambuStudio 2022-07-15 23:42:08 +08:00
tests Support larger printer sizes by using 64-bit. 2024-05-10 23:47:08 +08:00
tools restore tools to git from lfs 2024-03-17 23:14:43 +08:00
xs Support larger printer sizes by using 64-bit. 2024-05-10 23:47:08 +08:00
.clang-format Set PointerAlignment to Left (#2948) 2023-12-01 15:32:48 +00:00
.dockerignore Add some dockery things to ignore 2023-03-02 21:21:30 +08:00
.doxygen update doxygen setting 2023-06-30 13:59:41 +08:00
.gitattributes restore tools to git from lfs 2024-03-17 23:14:43 +08:00
.gitignore Flatpak build (#4175) 2024-05-25 09:11:19 +08:00
Build.PL post changes after merging BS1.7.4 2023-08-26 18:45:43 +08:00
build_release.bat Update build_release.bat (#3961) 2024-02-10 10:24:28 +08:00
build_release_macos.sh Upgrade Mac CI/CD to macos-14 (#5856) 2024-06-25 23:24:39 +08:00
build_release_vs2022.bat VS2022 Win10 build fix (#5806) 2024-06-29 22:21:57 +08:00
BuildLinux.sh Merge some features from BS1.9 beta4 (#5181) 2024-04-28 22:58:47 +08:00
CMakeLists.txt Flatpak build (#4175) 2024-05-25 09:11:19 +08:00
DockerBuild.sh Add Docker Build Support (#4485) 2024-03-17 23:19:01 +08:00
Dockerfile Fixup docker build/run (#5139) 2024-04-30 21:05:59 +08:00
DockerRun.sh Fixup docker build/run (#5139) 2024-04-30 21:05:59 +08:00
LICENSE.txt some misc changes (#1848) 2023-08-20 20:02:54 +08:00
localazy.json Add the Polish language (#3622) 2024-01-27 12:34:51 +08:00
OrcaSlicer.mo Change Application name to OrcaSlicer 2023-03-12 10:05:22 +08:00
README.md Add BigTreeTech as sponsor 2024-07-10 01:30:03 +08:00
Readme.txt post changes after merging BS1.7.4 2023-08-26 18:45:43 +08:00
run_gettext.bat fix node.js warning 2024-03-11 14:22:17 +08:00
run_gettext.sh ENH: Improve macOS build script (#4310) 2024-03-05 22:35:46 +08:00
SECURITY.md Create SECURITY.md (#3696) 2024-01-23 11:20:08 +00:00
version.inc bump version to 2.1.1 2024-06-26 22:05:17 +08:00

Build all

Orca Slicer

Orca Slicer is an open source slicer for FDM printers.

discord-mark-blue Join community: OrcaSlicer Official Discord Server

Main features

  • Auto calibrations for all printers
  • Sandwich(inner-outer-inner) mode - an improved version of the External perimeters first mode
  • Precise wall
  • Polyholes conversion support SuperSlicer Wiki: Polyholes
  • Klipper support
  • More granular controls
  • More features can be found in change notes

Download

Stable Release

📥 Download the Latest Stable Release
Visit our GitHub Releases page for the latest stable version of Orca Slicer, recommended for most users.

Nightly Builds

🌙 Download the Latest Nightly Build
Explore the latest developments in Orca Slicer with our nightly builds. Feedback on these versions is highly appreciated.

How to install

Windows:

  1. Download the installer for your preferred version from the releases page.

Mac:

  1. Download the DMG for your computer: arm64 version for Apple Silicon and x86_64 for Intel CPU.

  2. Drag OrcaSlicer.app to Application folder.

  3. If you want to run a build from a PR, you also need following instructions below

    - Option 1 (You only need to do this once. After that the app can be opened normally.): - Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**. - Step 2: A warning window will pop up, click _Open_
    • Option 2:
      Execute this command in terminal: xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app
          softfever@mac:~$ xattr -dr com.apple.quarantine /Applications/OrcaSlicer.app
      
    • Option 3:
      • Step 1: open the app, a warning window will pop up
        image
      • Step 2: in System Settings -> Privacy & Security, click Open Anyway:
        image

Linux(Ubuntu):

  1. If you run into trouble to execute it, try this command in terminal:
    chmod +x /path_to_appimage/OrcaSlicer_Linux.AppImage

How to compile

  • Windows 64-bit

    • Tools needed: Visual Studio 2019, Cmake, git, git-lfs, Strawberry Perl.
    • Run build_release.bat in x64 Native Tools Command Prompt for VS 2019
    • Note: Don't forget to run git lfs pull after cloning the repository to download tools on Windows
  • Mac 64-bit

    • Tools needed: Xcode, Cmake, git, gettext, libtool, automake, autoconf, texinfo
      • You can install most of them by running brew install cmake gettext libtool automake autoconf texinfo
    • run build_release_macos.sh
    • To build and debug in XCode:
      • run XCode.app
      • open build_`arch`/OrcaSlicer.xcodeproj
      • menu bar: Product => Scheme => OrcaSlicer
      • menu bar: Product => Scheme => Edit Scheme...
        • Run => Info tab => Build Configuration: RelWithDebInfo
        • Run => Options tab => Document Versions: uncheck Allow debugging when browsing versions
      • menu bar: Product => Run
  • Ubuntu

    • Dependencies Will be auto installed with the shell script: libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git texinfo
    • run 'sudo ./BuildLinux.sh -u'
    • run './BuildLinux.sh -dsir'

Note:

If you're running Klipper, it's recommended to add the following configuration to your printer.cfg file.

# Enable object exclusion
[exclude_object]

# Enable arcs support
[gcode_arcs]
resolution: 0.1

Supports

Orca Slicer is an open-source project, and I'm deeply grateful to all my sponsors and backers.
Their generous support enables me to purchase filaments and other essential 3D printing materials for the project.
Thank you! :)

Sponsors:

Peopoly QIDI Phrozen Technology BIGTREE TECH

Backers:

Ko-fi supporters: Backers list

Support me

PayPal

Some background

OrcaSlicer is originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.

Bambu Studio is forked from PrusaSlicer by Prusa Research, which is from Slic3r by Alessandro Ranellucci and the RepRap community. Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill Orca Slicer's logo is designed by community member Justin Levine(@freejstnalxndr)

License

Orca Slicer is licensed under the GNU Affero General Public License, version 3. Orca Slicer 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.

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.

Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.

The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.