Wiki Update 8 - Lorita (#10094)

* Wiki Home

Fix process-others
VFA test

* Add wall GIFs and update documentation

* Quality Overhangs Wiki Basic

Update README.md
Update Home.md

* Better only one wall

* Add infill ghosting image and update wall order

* Updates process options

* Fix calibration step numbering in documentation

Corrected the step numbers in the calibration order list to maintain sequential order.

* Update Calibration.md

* Update wall and surface quality docs with images and details

* Revise Linux build instructions and restructure sections

Co-Authored-By: cefiar <cefiar@gmail.com>

* APA Clarify compatibility notes

Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>

* Removed Tolerance test from calibration guide. Keeped as note

Co-Authored-By: Noisyfox <timemanager.rick@gmail.com>

* Copilot Review

---------

Co-authored-by: cefiar <cefiar@gmail.com>
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
This commit is contained in:
Ian Bassi
2025-07-29 13:15:18 -03:00
committed by GitHub
parent d93671bbc7
commit 3f1e4ca55a
24 changed files with 243 additions and 73 deletions

View File

@@ -49,7 +49,7 @@ If you come across any of these in search results, please report them as unsafe
Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
- **[Sandwich Mode](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_wall_and_surfaces#innerouterinner) and [Polyholes](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support**
Use varied infill patterns and accurate hole shapes for improved clarity.
- **[Overhang](https://github.com/SoftFever/OrcaSlicer/wiki/speed_settings_overhang_speed) and [Support Optimization](https://github.com/SoftFever/OrcaSlicer/wiki#support-settings)**
- **[Overhang](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_overhangs) and [Support Optimization](https://github.com/SoftFever/OrcaSlicer/wiki#support-settings)**
Modify geometry for printable overhangs with precise support placement.
- **[Granular Controls](https://github.com/SoftFever/OrcaSlicer/wiki#process-settings) and Customization**
Fine-tune print speed, layer height, pressure, and temperature with precision.

View File

@@ -70,6 +70,7 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Wall generator](quality_settings_wall_generator)
- [Walls and surfaces](quality_settings_wall_and_surfaces)
- [Bridging](quality_settings_bridging)
- [Overhangs](quality_settings_overhangs)
### Strength Settings
@@ -117,12 +118,12 @@ The below sections provide a detailed settings explanation as well as tips and t
![process-others](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-others.png?raw=true)
[Skirt](others_settings_skirt)
[Brim](others_settings_brim)
[Special Mode](others_settings_special_mode)
[G-Code Output](others_settings_g_code_output)
[Post Processing Scripts](others_settings_post_processing_scripts)
[Notes](others_settings_notes)
- [Skirt](others_settings_skirt)
- [Brim](others_settings_brim)
- [Special Mode](others_settings_special_mode)
- [G-Code Output](others_settings_g_code_output)
- [Post Processing Scripts](others_settings_post_processing_scripts)
- [Notes](others_settings_notes)
## Calibrations
@@ -138,6 +139,7 @@ The [Calibration Guide](Calibration) outlines Orcas key calibration tests and
- [Volumetric Speed](volumetric-speed-calib)
- [Cornering (Jerk & Junction Deviation)](cornering-calib)
- [Input Shaping](input-shaping-calib)
- [VFA](vfa-calib)
## Developer Section

View File

@@ -21,41 +21,43 @@ The recommended order for calibration is as follows:
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-6.jpg?raw=true" alt="flowrate-6" height="200">
1. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
3. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
- **[Adaptive Pressure Advance](adaptive-pressure-advance-calib):** This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-tower.jpg?raw=true" alt="pa-tower" height="200">
2. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion.
4. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_print.jpg?raw=true" alt="Retraction" height="200">
3. **[Tolerance](tolerance-calib):** Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTes_m6.jpg?raw=true" alt="Tolerance" height="200">
4. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion.
5. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_measurement_point.jpg?raw=true" alt="Max_Volumetric_Speed" height="200">
5. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.
6. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_print_measure.jpg?raw=true" alt="Cornering" height="200">
6. **[Input Shaping](input-shaping-calib):** This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer.
7. **[Input Shaping](input-shaping-calib):** This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_marlin_print_measure.jpg?raw=true" alt="Input_Shaping" height="200">
7. **[VFA](vfa-calib):** A VFA speed test is available to find resonance speeds.
8. **[VFA](vfa-calib):** A VFA speed test is available to find resonance speeds.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_print.jpg?raw=true" alt="vfa_test_print" height="200">
---
**[Tolerance](tolerance-calib):** Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTes_m6.jpg?raw=true" alt="Tolerance" height="200">
---
_Credits:_
- _The Flowrate test and retraction test is inspired by [SuperSlicer](https://github.com/supermerill/SuperSlicer)._
- _The Flow test and retraction test is inspired by [SuperSlicer](https://github.com/supermerill/SuperSlicer)._
- _The PA Line method is inspired by [K-factor Calibration Pattern](https://marlinfw.org/tools/lin_advance/k-factor.html)._
- _The PA Tower method is inspired by [Klipper](https://www.klipper3d.org/Pressure_Advance.html)._
- _The temp tower model is remixed from [Smart compact temperature calibration tower](https://www.thingiverse.com/thing:2729076)._

View File

@@ -11,17 +11,20 @@ This feature introduces the below options under the filament settings:
2. **Enable adaptive pressure advance for overhangs:** Enable adaptive PA for overhangs as well as when flow changes within the same feature. This is an experimental option because if the PA profile is not set accurately, it will cause uniformity issues on the external surfaces before and after overhangs. It is recommended to start with this option switched off and enable it after the core adaptive pressure advance feature is calibrated correctly.
3. **Pressure advance for bridges:** Sets the desired pressure advance value for bridges. Set it to 0 to disable this feature. Experiments have shown that a lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after a bridge, which is caused by the pressure drop in the nozzle when printing in the air. Therefore, a lower pressure advance value helps counteract this. A good starting point is approximately half your usual PA value.
4. **Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below.
5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but its the ultimate backstop).
5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but its the ultimate backstop).
![apa-material-config](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-material-config.png?raw=true)
## Pre-Requisites
This feature has been tested with Klipper-based printers. While it may work with Marlin or Bambu lab printers, it is currently untested with them. It shouldnt adversely affect the machine; however, the quality results from enabling it are not validated.
This feature has been tested with Klipper-based printers. While it may work with Marlin or Bambu lab printers, it is currently untested with them. It shouldn't adversely affect the machine; however, the quality results from enabling it are not validated.
**Older versions of Klipper used to stutter when pressure advance was changed while the toolhead was in motion. This has been fixed with the latest Klipper firmware releases. Therefore, make sure your Klipper installation is updated to the latest version before enabling this feature, in order to avoid any adverse quality impacts.**
> [!IMPORTANT]
> Versions of Klipper older than July 11th, 2024 might in some cases produce artifacts when dynamic PA is used.
> This has been fixed in Klipper stable version 0.13.0 (20250411), or in developer versions starting [from July 11th, 2024](https://github.com/Klipper3d/klipper/commit/c84d78f3f169bc5163d11b74837f9880b0b7dba4).
> If you experience issues or print quality lower than expected you might want to ensure you have a Klipper firmware which contains the fix.
Klipper firmware released after July 11th, 2024 (version greater than approximately v0.12.0-267) contains the above fix and is compatible with adaptive pressure advance. If you are upgrading from an older version, make sure you update both your Klipper installation as well as reflash the printer MCUs (main board and toolhead board if present).
> [!TIP]
> **Advanced users**: the fix to ensure optimal quality when dynamic PA is used does not require flashing the toolhead MCU or the printer MCU, but only an update of the host Python code. If you are using a commercial printer which does not offer straightforward MCU flashing (for example, Qidi printers), you might be able to manually patch the host code yourself.
## Use case (what to expect)
@@ -47,11 +50,14 @@ Finally, if during calibration you notice that there is little to no variance be
With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
![apa-expected-results](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-results.jpg?raw=true)
In addition, seams should appear smooth with no bulging or under extrusion.
![apa-expected-seam](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-seam.jpg?raw=true)
Solid infill should have no gaps, pinholes, or separation from the perimeters.
![apa-expected-solid-infill](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-solid-infill.jpg?raw=true)
Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
![apa-unexpected-solid-infill](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-unexpected-solid-infill.jpg?raw=true)
## How to calibrate the adaptive pressure advance model

View File

@@ -13,13 +13,15 @@ Whether you're a contributor or just want a custom build, this guide will help y
- [MacOS Instructions](#macos-instructions)
- [Debugging in Xcode](#debugging-in-xcode)
- [Linux](#linux)
- [Using Docker (Recommended)](#using-docker-recommended)
- [Using Docker](#using-docker)
- [Docker Dependencies](#docker-dependencies)
- [Docker Instructions](#docker-instructions)
- [Troubleshooting](#troubleshooting)
- [Ubuntu](#ubuntu)
- [Ubuntu Dependencies](#ubuntu-dependencies)
- [Ubuntu Instructions](#ubuntu-instructions)
- [Linux Build](#linux-build)
- [Dependencies](#dependencies)
- [Common dependencies across distributions](#common-dependencies-across-distributions)
- [Additional dependencies for specific distributions](#additional-dependencies-for-specific-distributions)
- [Linux Instructions](#linux-instructions)
- [Portable User Configuration](#portable-user-configuration)
- [Example folder structure](#example-folder-structure)
@@ -172,9 +174,9 @@ To build and debug directly in Xcode:
## Linux
Linux instructions are available in two formats: using Docker (recommended) or building directly on your system.
Linux distributions are available in two formats: [using Docker](#using-docker) (recommended) or [building directly](#linux-build) on your system.
### Using Docker (Recommended)
### Using Docker
How to build and run OrcaSlicer using Docker.
@@ -190,52 +192,114 @@ git clone https://github.com/SoftFever/OrcaSlicer && cd OrcaSlicer && ./DockerBu
```
### Troubleshooting
The `DockerRun.sh` script includes several commented-out options that can help resolve common issues. Here's a breakdown of what they do:
- `xhost +local:docker`: If you encounter an "Authorization required, but no authorization protocol specified" error, run this command in your terminal before executing DockerRun.sh. This grants Docker containers permission to interact with your X display server.
- `xhost +local:docker`: If you encounter an "Authorization required, but no authorization protocol specified" error, run this command in your terminal before executing `DockerRun.sh`. This grants Docker containers permission to interact with your X display server.
- `-h $HOSTNAME`: Forces the container's hostname to match your workstation's hostname. This can be useful in certain network configurations.
- `-v /tmp/.X11-unix:/tmp/.X11-unix`: Helps resolve problems with the X display by mounting the X11 Unix socket into the container.
- `--net=host`: Uses the host's network stack, which is beneficial for printer Wi-Fi connectivity and D-Bus communication.
- `--ipc host`: Addresses potential permission issues with X installations that prevent communication with shared memory sockets.
- `-u $USER`: Runs the container as your workstation's username, helping to maintain consistent file permissions.
- `-v $HOME`:/home/$USER: Mounts your home directory into the container, allowing you to easily load and save files.
- `-v $HOME:/home/$USER`: Mounts your home directory into the container, allowing you to easily load and save files.
- `-e DISPLAY=$DISPLAY`: Passes your X display number to the container, enabling the graphical interface.
- `--privileged=true`: Grants the container elevated privileges, which may be necessary for libGL and D-Bus functionalities.
- `-ti`: Attaches a TTY to the container, enabling command-line interaction with OrcaSlicer.
- `--rm`: Automatically removes the container once it exits, keeping your system clean.
- `orcaslicer $*`: Passes any additional parameters from the `DockerRun.sh` script directly to the OrcaSlicer executable within the container.
By uncommenting and using these options as needed, you can often resolve issues related to display authorization, networking, and file permissions.
## Ubuntu
### Linux Build
How to build OrcaSlicer on Ubuntu.
How to build OrcaSlicer on Linux.
### Ubuntu Dependencies
#### Dependencies
All required dependencies will be installed automatically by the provided shell script, including:
The build system supports multiple Linux distributions including Ubuntu/Debian and Arch Linux. All required dependencies will be installed automatically by the provided shell script where possible, however you may need to manually install some dependencies.
- libmspack-dev
- libgstreamerd-3-dev
- libsecret-1-dev
- libwebkit2gtk-4.0-dev
- libssl-dev
- libcurl4-openssl-dev
- eglexternalplatform-dev
- libudev-dev
- libdbus-1-dev
- extra-cmake-modules
- libgtk2.0-dev
- libglew-dev
> [!NOTE]
> Fedora and other distributions are not currently supported, but you can try building manually by installing the required dependencies listed below.
##### Common dependencies across distributions
- autoconf / automake
- cmake
- curl / libcurl4-openssl-dev
- dbus-devel / libdbus-1-dev
- eglexternalplatform-dev / eglexternalplatform-devel
- extra-cmake-modules
- file
- gettext
- git
- glew-devel / libglew-dev
- gstreamer-devel / libgstreamerd-3-dev
- gtk3-devel / libgtk-3-dev
- libmspack-dev / libmspack-devel
- libsecret-devel / libsecret-1-dev
- libspnav-dev / libspnav-devel
- libssl-dev / openssl-devel
- libtool
- libudev-dev
- mesa-libGLU-devel
- ninja-build
- texinfo
- webkit2gtk-devel / libwebkit2gtk-4.0-dev or libwebkit2gtk-4.1-dev
- wget
### Ubuntu Instructions
##### Additional dependencies for specific distributions
```shell
`./build_linux.sh -u` # install dependencies
`./build_linux.sh -disr` # build OrcaSlicer
```
- **Ubuntu 22.x/23.x**: libfuse-dev, m4
- **Arch Linux**: mesa, wayland-protocols
#### Linux Instructions
1. **Install system dependencies:**
```shell
./build_linux.sh -u
```
2. **Build dependencies:**
```shell
./build_linux.sh -d
```
3. **Build OrcaSlicer:**
```shell
./build_linux.sh -s
```
4. **Build AppImage (optional):**
```shell
./build_linux.sh -i
```
5. **All-in-one build (recommended):**
```shell
./build_linux.sh -dsi
```
**Additional build options:**
- `-b`: Build in debug mode
- `-c`: Force a clean build
- `-C`: Enable ANSI-colored compile output (GNU/Clang only)
- `-j N`: Limit builds to N cores (useful for low-memory systems)
- `-1`: Limit builds to one core
- `-l`: Use Clang instead of GCC
- `-p`: Disable precompiled headers (boost ccache hit rate)
- `-r`: Skip RAM and disk checks (for low-memory systems)
> [!NOTE]
> The build script automatically detects your Linux distribution and uses the appropriate package manager (apt, pacman) to install dependencies.
> [!TIP]
> For first-time builds, use `./build_linux.sh -u` to install dependencies, then `./build_linux.sh -dsi` to build everything.
> [!WARNING]
> If you encounter memory issues during compilation, use `-j 1` or `-1` to limit parallel compilation, or `-r` to skip memory checks.
---
## Portable User Configuration

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -0,0 +1,40 @@
# Overhangs
## Detect overhang wall
Detect the overhang percentage relative to line width and use different speed to print. For 100% overhang, bridge speed is used.
## Make overhang printable
Modify the geometry to print overhangs without support material.
### Maximum angle
Maximum angle of overhangs to allow after making more steep overhangs printable.
90° will not change the model at all and allow any overhang, while 0 will replace all overhangs with conical material.
### Hole area
Maximum area of a hole in the base of the model before it's filled by conical material.
A value of 0 will fill all the holes in the model base.
## Extra perimeters on overhangs
Create additional perimeter paths over steep overhangs and areas where bridges cannot be anchored.
## Reverse on even
Extrude perimeters that have a part over an overhang in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs.
This setting can also help reduce part warping due to the reduction of stresses in the part walls.
### Reverse internal only
Apply the reverse perimeters logic only on internal perimeters.
This setting greatly reduces part stresses as they are now distributed in alternating directions. This should reduce part warping while also maintaining external wall quality. This feature can be very useful for warp prone material, like ABS/ASA, and also for elastic filaments, like TPU and Silk PLA. It can also help reduce warping on floating regions over supports.
For this setting to be the most effective, it is recommended to set the Reverse Threshold to 0 so that all internal walls print in alternating directions on even layers irrespective of their overhang degree.
### Reverse threshold
Number of mm the overhang need to be for the reversal to be considered useful. Can be a % of the perimeter width.
Value 0 enables reversal on every even layers regardless.
When [Detect overhang wall](#detect-overhang-wall) is not enabled, this option is ignored and reversal happens on every even layers regardless.

View File

@@ -20,58 +20,114 @@ Print sequence of the internal (inner) and external (outer) walls.
### Inner/Outer
Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.
Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighboring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.
![inner-outer](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer.gif?raw=true)
### Inner/Outer/Inner
Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.
Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.
![inner-outer-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer-inner.gif?raw=true)
### Outer/Inner
Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface.
Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of [Inner/Outer/Inner](#innerouterinner) option. However, the z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface.
![outer-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/outer-inner.gif?raw=true)
### Print infill first
Order of wall/infill. When the tickbox is unchecked the walls are printed first, which works best in most cases.
Printing infill first may help with extreme overhangs as the walls have the neighbouring infill to adhere to. However, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part.
When this option is enabled, the infill is printed first, followed by the walls. This can be useful for some overhangs where the infill can support the walls.
![infill-first](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-first.gif?raw=true)
**However**, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part.
![infill-ghosting](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-ghosting.png?raw=true)
When using this option is recommended to use the [Precise Wall](quality_settings_precision#precise-wall), [Inner/Outer/Inner](#innerouterinner) wall printing order or reduce [Infill/Wall Overlap](strength_settings_infill#infill-wall-overlap) to avoid the infill pushing out the external wall.
## Wall loop direction
The direction which the wall loops are extruded when looking down from the top.
By default all walls are extruded in counter-clockwise, unless Reverse on even is enabled. Set this to any option other than Auto will force the wall direction regardless of the Reverse on even.
By default all walls are extruded in counter-clockwise, unless Reverse on even is enabled.
Set this to any option other than Auto will force the wall direction regardless of the Reverse on even.
> [!NOTE]
> This option will be disabled if spiral vase mode is enabled.
## Surface flow ratio
This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.
This factor affects the amount of material for top or bottom solid infill. You can decrease it slightly to have smooth surface finish.
The actual top surface flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio.
> [!TIP]
> Before using a value other than 1, it is recommended to [calibrate the flow ratio](flow-rate-calib) to ensure that the flow ratio is set correctly for your printer and filament.
## Only one wall
Use only one wall on flat surfaces, to give more space to the top infill pattern.
Specially useful in small features, like letters, where the top surface is very small and concentric pattern from walls would not cover it properly.
![only-one-wall](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall.gif?raw=true)
### Threshold
If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.
Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts.
If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.
![only-one-wall-threshold](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall-threshold.png?raw=true)
> [!WARNING]
> If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts.
## Avoid crossing walls
Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable.
![avoid-crossing-walls](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/avoid-crossing-walls.png?raw=true)
### Max detour length
Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable.
Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value.
Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path.
Zero will detour no matter the distance.
## Small area flow compensation
Enable flow compensation for small infill areas.
Enables adaptive flow control for small infill areas.
This feature helps address extrusion problems that often occur in small regions of solid infill, such as the tops of narrow letters or fine features. In these cases, standard extrusion flow may be too much for the available space, leading to over-extrusion or poor surface quality.
![flow-compensation-model](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model.png?raw=true)
It works by dynamically adjusting the extrusion flow based on the length of the extrusion path, ensuring more precise material deposition in small spaces.
This is a native implementation of @Alexander-T-Moss [Small Area Flow Compensation](https://github.com/Alexander-T-Moss/Small-Area-Flow-Comp).
### Flow Compensation Model
used to adjust the flow for small infill areas. The model is expressed as a comma separated pair of values for extrusion length and flow correction factors, one per line, in the following format:
The model uses a list of Extrusion Length and Flow Correction Factor value pairs. Each pair defines how much flow should be used for a specific Extrusion Length.
For values between the listed points, the flow is calculated using linear interpolation.
![flow-compensation-model-graph](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model-graph.png?raw=true)
For example for the following model:
| Extrusion Length | Flow Correction Factor |
|------------------|------------------------|
| 0 | 0 |
| 0.2 | 0.4444 |
| 0.4 | 0.6145 |
| 0.6 | 0.7059 |
| 0.8 | 0.7619 |
| 1.5 | 0.8571 |
| 2 | 0.8889 |
| 3 | 0.9231 |
| 5 | 0.952 |
| 10 | 1 |
You should write it as:
```c++
0,0;

View File

@@ -2179,14 +2179,14 @@ void TabPrint::build()
optgroup->append_single_option_line("counterbore_hole_bridging", "quality_settings_bridging#bridge-counterbore-hole");
optgroup = page->new_optgroup(L("Overhangs"), L"param_overhang");
optgroup->append_single_option_line("detect_overhang_wall");
optgroup->append_single_option_line("make_overhang_printable");
optgroup->append_single_option_line("make_overhang_printable_angle");
optgroup->append_single_option_line("make_overhang_printable_hole_size");
optgroup->append_single_option_line("extra_perimeters_on_overhangs");
optgroup->append_single_option_line("overhang_reverse");
optgroup->append_single_option_line("overhang_reverse_internal_only");
optgroup->append_single_option_line("overhang_reverse_threshold");
optgroup->append_single_option_line("detect_overhang_wall", "quality_settings_overhangs#detect-overhang-wall");
optgroup->append_single_option_line("make_overhang_printable", "quality_settings_overhangs#make-overhang-printable");
optgroup->append_single_option_line("make_overhang_printable_angle", "quality_settings_overhangs#maximum-angle");
optgroup->append_single_option_line("make_overhang_printable_hole_size", "quality_settings_overhangs#hole-area");
optgroup->append_single_option_line("extra_perimeters_on_overhangs", "quality_settings_overhangs#extra-perimeters-on-overhangs");
optgroup->append_single_option_line("overhang_reverse", "quality_settings_overhangs#reverse-on-even");
optgroup->append_single_option_line("overhang_reverse_internal_only", "quality_settings_overhangs#reverse-internal-only");
optgroup->append_single_option_line("overhang_reverse_threshold", "quality_settings_overhangs#reverse-threshold");
page = add_options_page(L("Strength"), "custom-gcode_strength"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Walls"), L"param_wall");