Wiki Update part 5 (#9873)
Some checks are pending
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run
Publish docs to Wiki / Publish docs to Wiki (push) Waiting to run

* BASE

* precise wall and z moved

* PolyHoles

* Arc-fitting

* X-Y Compensation

* Elephant foot + moved images

* Update quality_settings_precision.md

* Wall generator and more

* Full Reorder

* TPMS-D bases

* Update strength_settings_infill.md

* Image Fix + Infill desc calculator

* Descriptions + image fix

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

* Update cornering-calib.md

* minor fixes

* Wip updated

* Missing fills

* Update infill_desc_calculator.xlsx

* Update infill_desc_calculator.xlsx

* Update infill documentation and images

Removed outdated 'iso' infill images and updated 'top' infill images with new versions. Added new images for adaptive cubic and 2D honeycomb infill patterns. Updated strength_settings_infill.md to revise infill strength values, descriptions, and remove references to deleted images. Introduced documentation for 2D honeycomb infill and made minor corrections and clarifications throughout.

* Revise infill pattern documentation and add comparison table

Updated strength_settings_infill.md to clarify infill density calculation, add a comprehensive comparison table of infill patterns, and standardize terminology for strength and print time. Expanded pattern descriptions to use qualitative strength ratings instead of numeric values. Updated infill_desc_calculator.xlsx to reflect these changes.

* Indentation in  code examples

Adjusted the indentation of code blocks in the cornering calibration documentation for clarity and consistency with the rest of the document.

* Update 3D Honeycomb infill strength ratings

Adjusted the horizontal strength rating for 3D Honeycomb infill from 'Normal' to 'Normal-High' in the strength settings documentation and table. Updated the infill_desc_calculator.xlsx file to reflect these changes.

* Formatting and fix in ERS documentation

Updated headings to use consistent Markdown syntax, improved clarity in explanations, and reworded references for better readability.

* Fix wall generator doc link and filename

Updated the Home.md to reference the correct 'quality_settings_wall_generator' section and renamed the corresponding documentation file for consistency.

---------

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
This commit is contained in:
Ian Bassi 2025-06-19 23:19:48 -03:00 committed by GitHub
parent 3e3a07a5b8
commit 4ec16fd714
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
92 changed files with 742 additions and 371 deletions

View file

@ -28,9 +28,9 @@ Optimize your prints with ultra-fast slicing, intelligent support generation, an
- **[Advanced Calibration Tools](https://github.com/SoftFever/OrcaSlicer/wiki/Calibration)** - **[Advanced Calibration Tools](https://github.com/SoftFever/OrcaSlicer/wiki/Calibration)**
Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance. Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance.
- **[Precise Wall](https://github.com/SoftFever/OrcaSlicer/wiki/Precise-wall) and [Seam Control](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_seam)** - **[Precise Wall](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_seam)**
Adjust outer wall spacing and apply scarf seams to enhance print accuracy. Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
- **Sandwich Mode and [SuperSlicer Polyholes](https://github.com/supermerill/SuperSlicer/wiki/Polyholes) Support** - **Sandwich Mode and [Polyholes](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support**
Use varied infill patterns and accurate hole shapes for improved clarity. Use varied infill patterns and accurate hole shapes for improved clarity.
- **Overhang and Support Optimization** - **Overhang and Support Optimization**
Modify geometry for printable overhangs with precise support placement. Modify geometry for printable overhangs with precise support placement.

View file

@ -2,16 +2,25 @@
Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki page aims to provide an detailed explanation of the slicer settings, how to get the most out of them as well as how to calibrate and setup your printer. Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki page aims to provide an detailed explanation of the slicer settings, how to get the most out of them as well as how to calibrate and setup your printer.
- [Prepare](#prepare)
- [Print Settings, Tips and Tricks](#print-settings-tips-and-tricks) - [Print Settings, Tips and Tricks](#print-settings-tips-and-tricks)
- [Quality Settings](#quality-settings) - [Quality Settings](#quality-settings)
- [Speed Settings](#speed-settings) - [Speed Settings](#speed-settings)
- [Multi material](#multi-material) - [Strength Settings](#strength-settings)
- [Material Settings](#material-settings)
- [Printer Settings](#printer-settings) - [Printer Settings](#printer-settings)
- [Printer Calibration](#printer-calibration) - [Printer Calibration](#printer-calibration)
- [Developer Section](#developer-section) - [Developer Section](#developer-section)
> [!NOTE] > [!NOTE]
> The Wiki is **Work In Progress** so bear with us while we get it up and running! > The Wiki is **Work In Progress** so bear with us while we get it up and running!
> Please consider contributing to the wiki following the [How to contribute to the wiki](How-to-wiki) guide.
## Prepare
First steps to prepare your model/s for printing.
- [STL Transformation](stl-transformation)
## Print Settings, Tips and Tricks ## Print Settings, Tips and Tricks
@ -22,17 +31,31 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Layer Height Settings](quality_settings_layer_height) - [Layer Height Settings](quality_settings_layer_height)
- [Line Width Settings](quality_settings_line_width) - [Line Width Settings](quality_settings_line_width)
- [Seam Settings](quality_settings_seam) - [Seam Settings](quality_settings_seam)
- [Precise wall](Precise-wall) - [Precision](quality_settings_precision)
- [Precise Z height](precise-z-height) - [Precise Wall](quality_settings_precision#precise-wall)
- [STL Transformation](stl-transformation) - [Precise Z Height](quality_settings_precision#precise-z-height)
- [Slice gap closing radius](quality_settings_precision#slice-gap-closing-radius)
- [Resolution](quality_settings_precision#resolution)
- [Arc fitting](quality_settings_precision#arc-fitting)
- [X-Y Compensation](quality_settings_precision#x-y-compensation)
- [Elephant foot compensation](quality_settings_precision#elephant-foot-compensation)
- [Precise wall](quality_settings_precision#precise-wall)
- [Precise Z Height](quality_settings_precision#precise-z-height)
- [Polyholes](quality_settings_precision#polyholes)
- [Wall generator](quality_settings_wall_generator)
### Speed Settings ### Speed Settings
- [Extrusion rate smoothing](extrusion-rate-smoothing) - [Extrusion rate smoothing](speed_extrusion_rate_smoothing)
### Multi material ### Strength Settings
- [Infill](strength_settings_infill)
## Material Settings
- [Single Extruder Multimaterial](semm) - [Single Extruder Multimaterial](semm)
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
### Printer Settings ### Printer Settings
@ -41,8 +64,6 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Chamber temperature control](chamber-temperature) - [Chamber temperature control](chamber-temperature)
- [Adaptive Bed Mesh](adaptive-bed-mesh) - [Adaptive Bed Mesh](adaptive-bed-mesh)
- [Using different bed types in Orca](bed-types) - [Using different bed types in Orca](bed-types)
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
- [Fill Patterns](fill-patterns)
## Printer Calibration ## Printer Calibration
@ -61,8 +82,12 @@ The [Calibration Guide](Calibration) outlines Orcas key calibration tests and
## Developer Section ## Developer Section
This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless.
- [How to build Orca Slicer](How-to-build) - [How to build Orca Slicer](How-to-build)
- [Localization and translation guide](Localization_guide) - [Localization and translation guide](Localization_guide)
- [Developer Reference](Developers-Home)
- [How to create profiles](How-to-create-profiles) - [How to create profiles](How-to-create-profiles)
- [How to contribute to the wiki](How-to-wiki) - [How to contribute to the wiki](How-to-wiki)
- [Preset, PresetBundle and PresetCollection](Preset-and-bundle)
- [Plater, Sidebar, Tab, ComboBox](plater-sidebar-tab-combobox)
- [Slicing Call Hierarchy](slicing-hierarchy)

View file

@ -1,25 +0,0 @@
# Precise Wall
The 'Precise Wall' is a distinctive feature introduced by OrcaSlicer, aimed at improving the dimensional accuracy of prints and minimizing layer inconsistencies by slightly increasing the spacing between the outer wall and the inner wall.
## Technical explanation
Below is a technical explanation of how this feature works.
First, it's important to understand some basic concepts like flow, extrusion width, and space. Slic3r has an excellent document that covers these topics in detail. You can refer to this [article](https://manual.slic3r.org/advanced/flow-math).
Now, let's dive into the specifics. Slic3r and its forks, such as PrusaSlicer, SuperSlicer, and OrcaSlicer, assume that the extrusion path has an oval shape, which accounts for the overlaps. For example, if we set the wall width to 0.4mm and the layer height to 0.2mm, the combined thickness of two walls laid side by side is 0.714mm instead of 0.8mm due to the overlapping.
- **Precise Wall Off**
![PreciseWallOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/PreciseWall/PreciseWallOff.svg?raw=true)
- **Precise Wall On**
![PreciseWallOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/PreciseWall/PreciseWallOn.svg?raw=true)
This approach enhances the strength of 3D-printed parts. However, it does have some side effects. For instance, when the inner-outer wall order is used, the outer wall can be pushed outside, leading to potential size inaccuracy and more layer inconsistency.
It's important to keep in mind that this approach to handling flow is specific to Slic3r and its forks. Other slicing software, such as Cura, assumes that the extrusion path is rectangular and, therefore, does not include overlapping. Two 0.4 mm walls will result in a 0.8 mm shell thickness in Cura.
OrcaSlicer adheres to Slic3r's approach to handling flow. To address the downsides mentioned earlier, OrcaSlicer introduced the 'Precise Wall' feature. When this feature is enabled in OrcaSlicer, the overlap between the outer wall and its adjacent inner wall is set to zero. This ensures that the overall strength of the printed part is unaffected, while the size accuracy and layer consistency are improved.

View file

@ -4,7 +4,7 @@ Cornering is a critical aspect of 3D printing that affects the quality and accur
## Jerk ## Jerk
TODO: Jerk calibration not implemented yet. WIP... TODO: Jerk calibration not implemented yet.
## Junction Deviation ## Junction Deviation
@ -52,9 +52,9 @@ The default value in Marlin is typically set to 0.08mm, which may be too high fo
3. Recompile your MarlinFW 3. Recompile your MarlinFW
1. In Configuration.h uncomment and set: 1. In Configuration.h uncomment and set:
```cpp ```cpp
#define JUNCTION_DEVIATION_MM 0.012 // (mm) Distance from real junction edge #define JUNCTION_DEVIATION_MM 0.012 // (mm) Distance from real junction edge
``` ```
2. Check Classic Jerk is disabled (commented). 2. Check Classic Jerk is disabled (commented).
```cpp ```cpp
//#define CLASSIC_JERK //#define CLASSIC_JERK
``` ```

View file

@ -1,7 +0,0 @@
# For Developers
This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless.
- [Preset, PresetBundle and PresetCollection](Preset-and-bundle)
- [Plater, Sidebar, Tab, ComboBox](plater-sidebar-tab-combobox)
- [Slicing Call Hierarchy](slicing-hierarchy)

View file

@ -57,6 +57,10 @@ This guide is for building your Visual Studio 2022 solution for OrcaSlicer on Wi
```shell ```shell
build_release_vs2022.bat build_release_vs2022.bat
``` ```
> [!NOTE]
> If you encounter issues, you can try to uninstall ZLIB from your Vcpkg library.
3. If successful, you will find the VS 2022 solution file in: 3. If successful, you will find the VS 2022 solution file in:
```shell ```shell
build\OrcaSlicer.sln build\OrcaSlicer.sln
@ -65,7 +69,7 @@ This guide is for building your Visual Studio 2022 solution for OrcaSlicer on Wi
> [!IMPORTANT] > [!IMPORTANT]
> Make sure that CMake version 3.31.x is actually being used. Run `cmake --version` and verify it returns a **3.31.x** version. > Make sure that CMake version 3.31.x is actually being used. Run `cmake --version` and verify it returns a **3.31.x** version.
> If you see an older version (e.g. 3.29), it's likely due to another copy in your system's PATH (e.g. from Strawberry Perl). > If you see an older version (e.g. 3.29), it's likely due to another copy in your system's PATH (e.g. from Strawberry Perl).
> You can run where cmake to check the active paths and rearrange your System Environment Variables > PATH, ensuring the correct CMake (e.g. C:\Program Files\CMake\bin) appears before others like C:\Strawberry\c\bin. > You can run where cmake to check the active paths and rearrange your **System Environment Variables** > PATH, ensuring the correct CMake (e.g. C:\Program Files\CMake\bin) appears before others like C:\Strawberry\c\bin.
> [!NOTE] > [!NOTE]
> If the build fails, try deleting the `build/` and `deps/build/` directories to clear any cached build data. Rebuilding after a clean-up is usually sufficient to resolve most issues. > If the build fails, try deleting the `build/` and `deps/build/` directories to clear any cached build data. Rebuilding after a clean-up is usually sufficient to resolve most issues.

View file

@ -1,6 +1,9 @@
# Application Structure Overview # Application Structure Overview
### !! incomplete, possibly inaccurate, being updated with new info !! WIP...
> [!WARNING]
> !! incomplete, possibly inaccurate, being updated with new info !!
## [`Plater`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp) ## [`Plater`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp)

View file

@ -1,91 +0,0 @@
# Infill Patterns
WIP...
## Concentric
![infill-top-concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-concentric.png?raw=true)
![infill-iso-concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-concentric.png?raw=true)
## Rectilinear
![infill-top-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-rectilinear.png?raw=true)
![infill-iso-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-rectilinear.png?raw=true)
## Grid
![infill-top-grid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-grid.png?raw=true)
![infill-iso-grid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-grid.png?raw=true)
## 2D Lattice
![infill-top-2d-lattice](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-2d-lattice.png?raw=true)
![infill-iso-2d-lattice](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-2d-lattice.png?raw=true)
## Line
![infill-top-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-line.png?raw=true)
![infill-iso-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-line.png?raw=true)
## Cubic
![infill-top-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cubic.png?raw=true)
![infill-iso-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-cubic.png?raw=true)
## Triangles
![infill-top-triangles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-triangles.png?raw=true)
![infill-iso-triangles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-triangles.png?raw=true)
## Tri-hexagon
![infill-top-tri-hexagon](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tri-hexagon.png?raw=true)
![infill-iso-tri-hexagon](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-tri-hexagon.png?raw=true)
## Gyroid
![infill-top-gyroid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-gyroid.png?raw=true)
![infill-iso-gyroid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-gyroid.png?raw=true)
## Honeycomb
![infill-top-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-honeycomb.png?raw=true)
![infill-iso-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-honeycomb.png?raw=true)
## Adaptive Cubic
![infill-top-adaptive-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-adaptive-cubic.png?raw=true)
![infill-iso-adaptive-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-adaptive-cubic.png?raw=true)
## Aligned Rectilinear
![infill-top-aligned-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-aligned-rectilinear.png?raw=true)
![infill-iso-aligned-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-aligned-rectilinear.png?raw=true)
## 3D Honeycomb
![infill-top-3d-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-3d-honeycomb.png?raw=true)
![infill-iso-3d-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-3d-honeycomb.png?raw=true)
## Hilbert Curve
![infill-top-hilbert-curve](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-hilbert-curve.png?raw=true)
![infill-iso-hilbert-curve](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-hilbert-curve.png?raw=true)
## Archimedean Chords
![infill-top-archimedean-chords](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-archimedean-chords.png?raw=true)
![infill-iso-archimedean-chords](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-archimedean-chords.png?raw=true)
## Octagram Spiral
![infill-top-octagram-spiral](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-octagram-spiral.png?raw=true)
![infill-iso-octagram-spiral](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-octagram-spiral.png?raw=true)
## Support Cubic
![infill-top-support-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-support-cubic.png?raw=true)
![infill-iso-support-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-support-cubic.png?raw=true)
## Lightning
![infill-top-lightning](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-lightning.png?raw=true)
![infill-iso-lightning](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-lightning.png?raw=true)
## Cross Hatch
![infill-top-cross-hatch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-hatch.png?raw=true)
![infill-iso-cross-hatch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-cross-hatch.png?raw=true)
## Quartered Cubic
![infill-top-quartered-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-quartered-cubic.png?raw=true)
![infill-iso-quartered-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-iso-quartered-cubic.png?raw=true)
> [!NOTE]
> Standard images are taken with:
> - Primitive Cube: 66mm x 66mm x 66mm
> - Layer Height: 0.2mm
> - Infill Density: 15%
> - Layer Count: 329
> - Wall loops: 3 (Hide in isometric view)
> - Anchor: Off

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 KiB

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 266 KiB

After

Width:  |  Height:  |  Size: 266 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent; color-scheme: light dark;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1202px" height="402px" viewBox="-0.5 -0.5 1202 402"><defs/><g><g data-cell-id="8ElPFWQneQNdZ3zXist4-0"><g data-cell-id="8ElPFWQneQNdZ3zXist4-1"><g data-cell-id="8ElPFWQneQNdZ3zXist4-2"><g><rect x="300" y="280" width="300" height="120" rx="44.4" ry="44.4" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="8ElPFWQneQNdZ3zXist4-3"><g><rect x="600" y="280" width="300" height="120" rx="44.4" ry="44.4" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="8ElPFWQneQNdZ3zXist4-4"><g><rect x="0" y="280" width="300" height="120" rx="44.4" ry="44.4" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-0"><g><rect x="900" y="280" width="300" height="120" rx="44.4" ry="44.4" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-1"><g><rect x="320" y="140" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-2"><g><rect x="600" y="140" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-3"><g><rect x="40" y="140" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-4"><g><rect x="880" y="140" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-5"><g><rect x="320" y="0" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-6"><g><rect x="600" y="0" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#e3c800" style="fill: light-dark(rgb(227, 200, 0), rgb(103, 80, 0)); stroke: light-dark(rgb(176, 149, 0), rgb(141, 118, 0));" stroke="#b09500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-7"><g><rect x="40" y="0" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g><g data-cell-id="TlwVYZd-n_Lwme7Xjjv9-8"><g><rect x="880" y="0" width="280" height="140" rx="51.8" ry="51.8" fill-opacity="0.75" fill="#fa6800" style="fill: light-dark(rgb(250, 104, 0), rgb(233, 107, 18)); stroke: light-dark(rgb(199, 53, 0), rgb(255, 145, 100));" stroke="#c73500" stroke-opacity="0.75" stroke-width="2" pointer-events="all"/></g></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 708 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 958 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 496 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 324 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Before After
Before After

View file

@ -1,15 +0,0 @@
# Precise Z Height Adjustment
This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the layer height.
For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm would typically result in a final height of 20.2mm due to the layer height increments.
By enabling this parameter, the layer height of the last five layers is adjusted so that the final sliced height matches the actual object height, resulting in an accurate 20.1mm (as shown in the picture).
- **Precise Z Height Off**
![PreciseZOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/PreciseZ/PreciseZOff.png?raw=true)
- **Precise Z Height On**
![PreciseZOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/PreciseZ/PreciseZOn.png?raw=true)

View file

@ -0,0 +1,112 @@
# Precision
This section covers the settings that affect the precision of your prints. These settings can help you achieve better dimensional accuracy, reduce artifacts, and improve overall print quality.
- [Slice gap closing radius](#slice-gap-closing-radius)
- [Resolution](#resolution)
- [Arc fitting](#arc-fitting)
- [X-Y Compensation](#x-y-compensation)
- [Elephant foot compensation](#elephant-foot-compensation)
- [Precise wall](#precise-wall)
- [Technical explanation](#technical-explanation)
- [Precise Z Height](#precise-z-height)
- [Polyholes](#polyholes)
## Slice gap closing radius
Cracks smaller than 2x gap closing radiusCracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.
## Resolution
The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. Smaller value means higher resolution and more time to slice.
## Arc fitting
Enable this to get a G-code file which has [G2 and G3](https://marlinfw.org/docs/gcode/G002-G003.html) moves.
After a model is sliced this feature will replace straight line segments with arcs where possible. This is particularly useful for curved surfaces, as it allows the printer to move in a more fluid manner, reducing the number of G-code commands and improving the overall print quality.
This will result in a smaller G-code file for the same model, as arcs are used instead of many short line segments. This can improve print quality and reduce printing time, especially for curved surfaces.
![arc-fitting](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/arc-fitting.svg?raw=true)
> [!IMPORTANT]
> This option is only available for machines that support G2 and G3 commands and may impact in CPU usage on the printer.
> [!NOTE]
> **Klipper machines**, this option is recommended to be disabled.
Klipper does not benefit from arc commands as these are split again into line segments by the firmware. This results in a reduction in surface quality as line segments are converted to arcs by the slicer and then back to line segments by the firmware.
## X-Y Compensation
Used to compensate external dimensions of the model.
With this option you can compensate material expansion or shrinkage, which can occur due to various factors such as the type of filament used, temperature fluctuations, or printer calibration issues.
Follow the [Calibration Guide](https://github.com/SoftFever/OrcaSlicer/wiki/Calibration) and [Filament Tolerance Calibration](https://github.com/SoftFever/OrcaSlicer/wiki/tolerance-calib) to determine the correct value for your printer and filament combination.
## Elephant foot compensation
This feature compensates for the "elephant foot" effect, which occurs when the first few layers of a print are wider than the rest due:
- Weight of the material above them.
- Thermal expansion of the material.
- Bed temperature being too high.
- Inaccurate bed height.
![elephant-foot](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot.svg?raw=true)
To mitigate this effect, OrcaSlicer allows you to specify a negative distance that will be applied to the first specified number of layers. This adjustment effectively reduces the width of the first few layers, helping to achieve a more accurate final print size.
![elephant-foot-compensation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot-compensation.png?raw=true)
## Precise wall
The 'Precise Wall' is a distinctive feature introduced by OrcaSlicer, aimed at improving the dimensional accuracy of prints and minimizing layer inconsistencies by slightly increasing the spacing between the outer wall and the inner wall.
### Technical explanation
Below is a technical explanation of how this feature works.
First, it's important to understand some basic concepts like flow, extrusion width, and space. Slic3r has an excellent document that covers these topics in detail. You can refer to this [article](https://manual.slic3r.org/advanced/flow-math).
Now, let's dive into the specifics. Slic3r and its forks, such as PrusaSlicer, SuperSlicer, and OrcaSlicer, assume that the extrusion path has an oval shape, which accounts for the overlaps. For example, if we set the wall width to 0.4mm and the layer height to 0.2mm, the combined thickness of two walls laid side by side is 0.714mm instead of 0.8mm due to the overlapping.
- **Precise Wall Off**
![PreciseWallOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOff.svg?raw=true)
- **Precise Wall On**
![PreciseWallOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOn.svg?raw=true)
This approach enhances the strength of 3D-printed parts. However, it does have some side effects. For instance, when the inner-outer wall order is used, the outer wall can be pushed outside, leading to potential size inaccuracy and more layer inconsistency.
It's important to keep in mind that this approach to handling flow is specific to Slic3r and its forks. Other slicing software, such as Cura, assumes that the extrusion path is rectangular and, therefore, does not include overlapping. Two 0.4 mm walls will result in a 0.8 mm shell thickness in Cura.
OrcaSlicer adheres to Slic3r's approach to handling flow. To address the downsides mentioned earlier, OrcaSlicer introduced the 'Precise Wall' feature. When this feature is enabled in OrcaSlicer, the overlap between the outer wall and its adjacent inner wall is set to zero. This ensures that the overall strength of the printed part is unaffected, while the size accuracy and layer consistency are improved.
## Precise Z Height
This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the layer height.
For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm would typically result in a final height of 20.2mm due to the layer height increments.
By enabling this parameter, the layer height of the last five layers is adjusted so that the final sliced height matches the actual object height, resulting in an accurate 20.1mm (as shown in the picture).
- **Precise Z Height Off**
![PreciseZOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOff.png?raw=true)
- **Precise Z Height On**
![PreciseZOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOn.png?raw=true)
## Polyholes
A polyhole is a technique used in FFF 3D printing to improve the accuracy of circular holes. Instead of modeling a perfect circle, the hole is represented as a polygon with a reduced number of flat sides. This simplification forces the slicer to treat each segment as a straight line, which prints more reliably. By carefully choosing the number of sides and ensuring the polygon sits on the outer boundary of the hole, you can produce openings that more closely match the intended diameter.
![PolyHoles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PolyHoles.png?raw=true)
- Original implementation: [SuperSlicer Polyholes](https://github.com/supermerill/SuperSlicer/wiki/Polyholes)
- Idea and mathematics: [Hydraraptor](https://hydraraptor.blogspot.com/2011/02/polyholes.html)

View file

@ -73,14 +73,14 @@ To minimize the visibility of potential over-extrusion at the start of an extern
This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam. This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam.
## Tips: ## Tips
With seams being inevitable when 3D printing using FFF, there are two distinct approaches on how to deal with them: With seams being inevitable when 3D printing using FFF, there are two distinct approaches on how to deal with them:
1. **Try and hide the seam as much as possible:** This can be done by enabling scarf seam, which works very well, especially with simple models with limited overhang regions. 1. **Try and hide the seam as much as possible:** This can be done by enabling scarf seam, which works very well, especially with simple models with limited overhang regions.
2. **Try and make the seam as "clean" and "distinct" as possible:** This can be done by tuning the seam gap and enabling role-based wipe speed, wipe on loops, and wipe before the external loop. 2. **Try and make the seam as "clean" and "distinct" as possible:** This can be done by tuning the seam gap and enabling role-based wipe speed, wipe on loops, and wipe before the external loop.
## Troubleshooting Seam Performance: ## Troubleshooting Seam Performance
The section below will focus on troubleshooting traditional seams. For scarf seam troubleshooting, refer to the guide linked above. The section below will focus on troubleshooting traditional seams. For scarf seam troubleshooting, refer to the guide linked above.
@ -93,7 +93,7 @@ However, due to mechanical and material tolerances, as well as the very nature o
![seam-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-quality.jpg?raw=true) ![seam-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-quality.jpg?raw=true)
### Troubleshooting the Start of a Seam: ### Troubleshooting the Start of a Seam
Imagine the scenario where the toolhead finishes printing a layer line on one side of the bed, retracts, travels the whole distance of the bed to de-retract, and starts printing another part. Compare this to the scenario where the toolhead finishes printing an internal perimeter and only travels a few mm to start printing an external perimeter, without even retracting or de-retracting. Imagine the scenario where the toolhead finishes printing a layer line on one side of the bed, retracts, travels the whole distance of the bed to de-retract, and starts printing another part. Compare this to the scenario where the toolhead finishes printing an internal perimeter and only travels a few mm to start printing an external perimeter, without even retracting or de-retracting.
@ -113,7 +113,7 @@ So this is a trade-off between print speed and print quality. From experimental
In addition, larger nozzle diameters allow for more opportunity for material to leak compared to smaller diameter nozzles. A 0.2/0.25 mm nozzle will have significantly better seam performance than a 0.4, and that will have much better performance than a 0.6mm nozzle and so forth. In addition, larger nozzle diameters allow for more opportunity for material to leak compared to smaller diameter nozzles. A 0.2/0.25 mm nozzle will have significantly better seam performance than a 0.4, and that will have much better performance than a 0.6mm nozzle and so forth.
### Troubleshooting the End of a Seam: ### Troubleshooting the End of a Seam
The end of a seam is much easier to get right, as the extrusion system is already at a pressure equilibrium while printing. It just needs to stop extruding at the right time and consistently. The end of a seam is much easier to get right, as the extrusion system is already at a pressure equilibrium while printing. It just needs to stop extruding at the right time and consistently.
@ -125,7 +125,7 @@ Furthermore, the printer mechanics have tolerances the print head may be req
Finally, the techniques of **wiping can help improve the visual continuity and consistency of a seam** (please note, these settings do not make the seam less visible, but rather make them more consistent!). Wiping on loops with a consistent speed helps tuck in the end of the seam, hiding the effects of retraction from view. Finally, the techniques of **wiping can help improve the visual continuity and consistency of a seam** (please note, these settings do not make the seam less visible, but rather make them more consistent!). Wiping on loops with a consistent speed helps tuck in the end of the seam, hiding the effects of retraction from view.
### The Role of Wall Ordering in Seam Appearance: ### The Role of Wall Ordering in Seam Appearance
The order of wall printing plays a significant role in the appearance of a seam. **Starting to print the external perimeter first after a long travel move will always result in more visible artifacts compared to printing the internal perimeters first and traveling just a few mm to print the external perimeter.** The order of wall printing plays a significant role in the appearance of a seam. **Starting to print the external perimeter first after a long travel move will always result in more visible artifacts compared to printing the internal perimeters first and traveling just a few mm to print the external perimeter.**

View file

@ -0,0 +1,23 @@
# Wall Generator
WIP...
## Classic
WIP...
![wallgenerator-classic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-classic.png?raw=true)
## Arachne
WIP...
![wallgenerator-arachne](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-arachne.png?raw=true)
- Wall transitioning threshhold angle
- Wall transitioning filter
- Wall transitioning length
- Wall distribution count
- First layer minimum wall width
- Minimum feature size
- Minimum wall length

View file

@ -1,191 +1,192 @@
# Extrusion rate smoothing # Extrusion rate smoothing
Extrusion rate smoothing (ERS), also known as pressure equalizer in Prusa Slicer, aims to **limit the rate of extrusion volume change to be below a user set threshold (the ERS value).** It aims to assist the printer firmware internal motion planners, pressure advance in achieving the desired nozzle flow and reducing deviations against the ideal flow. Extrusion rate smoothing (ERS), also known as pressure equalizer in Prusa Slicer, aims to **limit the rate of extrusion volume change to be below a user set threshold (the ERS value).** It aims to assist the printer firmware internal motion planners, pressure advance in achieving the desired nozzle flow and reducing deviations against the ideal flow.
This happens by reducing the stresses put on the extrusion system as well as reducing the absolute deviations from the ideal extrusion flow caused by pressure advance smooth time. This happens by reducing the stresses put on the extrusion system as well as reducing the absolute deviations from the ideal extrusion flow caused by pressure advance smooth time.
This feature is especially helpful when printing at high accelerations and large flow rates as the deviations are larger in these cases. This feature is especially helpful when printing at high accelerations and large flow rates as the deviations are larger in these cases.
![ers-intro](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-intro.jpg?raw=true) ![ers-intro](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-intro.jpg?raw=true)
## Theory ## Theory
Enabling this feature creates a small **speed "ramp"** by slowing down and ramping up print speeds prior to and after the features causing a sudden change in extrusion flow rate needs, such as overhangs and overhang perimeters. Enabling this feature creates a small **speed "ramp"** by slowing down and ramping up print speeds prior to and after the features causing a sudden change in extrusion flow rate needs, such as overhangs and overhang perimeters.
This works by breaking down the printed line segments into smaller "chunks", proportional to the ERS segment length, and reduces the print speed of these segments so that the **requested extrusion volumetric flow rate change is less than or equal to the ERS threshold**. This works by breaking down the printed line segments into smaller "chunks", proportional to the ERS segment length, and reduces the print speed of these segments so that the **requested extrusion volumetric flow rate change is less than or equal to the ERS threshold**.
In summary, **it takes the "edge" off rapid extrusion changes caused by acceleration/deceleration as these are now spread over a longer distance and time.** Therefore, it can reduce wall artefacts that show when the print speeds change suddenly. These artefacts are occuring because the extruder and firmware cannot perfectly adhere to the requested by the slicer flow rates, especially when the extrusion rate is changing rapidly. In summary, **it takes the "edge" off rapid extrusion changes caused by acceleration/deceleration as these are now spread over a longer distance and time.** Therefore, it can reduce wall artefacts that show when the print speeds change suddenly. These artefacts are occuring because the extruder and firmware cannot perfectly adhere to the requested by the slicer flow rates, especially when the extrusion rate is changing rapidly.
**The example below shows the artefact that is mitigated by ERS.** **The example below shows the artefact that is mitigated by ERS.**
![ers-artefact](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-artefact.jpg?raw=true) ![ers-artefact](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-artefact.jpg?raw=true)
The bulging visible above is due to the extruder not being able to respond fast enough against the required speed change when printing with high accelerations and high speeds and requested to slow down for an overhang. The bulging visible above is due to the extruder not being able to respond fast enough against the required speed change when printing with high accelerations and high speeds and requested to slow down for an overhang.
In the above scenario, the printer (Bambu Lab X1 Carbon) was requested to slow down from a 200mm/sec print speed to 40mm/sec at an acceleration of 5k/sec2. **The extruder could not keep up with the pressure change, resulting in a slight bump ahead at the point of speed change.** In the above scenario, the printer (Bambu Lab X1 Carbon) was requested to slow down from a 200mm/sec print speed to 40mm/sec at an acceleration of 5k/sec2. **The extruder could not keep up with the pressure change, resulting in a slight bump ahead at the point of speed change.**
This parameter interacts with the below printer kinematic settings and physical limits: This parameter interacts with the below printer kinematic settings and physical limits:
**1. The limits of the extruder system** - how fast can it change pressure in the nozzle **1. The limits of the extruder system** - how fast can it change pressure in the nozzle
**2. The configured pressure advance values** - that also affect pressure changes in the nozzle **2. The configured pressure advance values** - that also affect pressure changes in the nozzle
**3. The acceleration profile of the printer** - higher accelerations mean higher pressure changes **3. The acceleration profile of the printer** - higher accelerations mean higher pressure changes
**4. The pressure advance smooth time (klipper)** - higher smooth time means higher deviation from ideal extrusion, hence more opportunity for this feature to be useful. **4. The pressure advance smooth time (klipper)** - higher smooth time means higher deviation from ideal extrusion, hence more opportunity for this feature to be useful.
<h3>Acceleration vs. Extrusion rate smoothing</h3>A printer's motion system does ### Acceleration vs. Extrusion rate smoothing
not exactly follow the speed changes seen in the gcode preview screen of Orca
slicer. A printer's motion system does not exactly follow the speed changes seen in the gcode preview screen of Orca
slicer.
When a speed change is requested, the firmware look ahead planner calculates the slow down needed to achieve the target speed. The rate of slowdown is limited by the move's acceleration value.
When a speed change is requested, the firmware look ahead planner calculates the slow down needed to achieve the target speed. The rate of slowdown is limited by the move's acceleration value.
**Lets consider an example.** Assume printing an overhang wall with **2k external wall acceleration**, were the printer is called to slow down from **200mm/sec to 40mm/sec**.
**Lets consider an example.** Assume printing an overhang wall with **2k external wall acceleration**, were the printer is called to slow down from **200mm/sec to 40mm/sec**.
This deceleration move would happen over approximately 9.6mm. This is derived from the following equation:
This deceleration move would happen over approximately 9.6mm. This is derived from the following equation:
Where:
Where:
- vf = final speed.
- vi = initial speed. - vf = final speed.
- a = acceleration (in this case, it will be negative as it's a deceleration). - vi = initial speed.
- d = distance. - a = acceleration (in this case, it will be negative as it's a deceleration).
- d = distance.
```math
d = \frac{v_f^2 - v_i^2}{2a} ```math
``` d = \frac{v_f^2 - v_i^2}{2a}
```
The time taken to decelerate to this new speed would be approx. 0.08 seconds, derived from the following equation:
The time taken to decelerate to this new speed would be approx. 0.08 seconds, derived from the following equation:
```math
t = \frac{v_f - v_i}{a} ```math
``` t = \frac{v_f - v_i}{a}
```
A printer printing at 200mm/sec with a 0.42 line width and 0.16 layer height would be extruding plastic at approx. 12.16mm3/sec, as can also be seen from the below visual.
A printer printing at 200mm/sec with a 0.42 line width and 0.16 layer height would be extruding plastic at approx. 12.16mm3/sec, as can also be seen from the below visual.
![ers-printspeed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-printspeed.jpg?raw=true)
![ers-printspeed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-printspeed.jpg?raw=true)
When the printer is extruding at 40mm/sec with the same line width and layer height as above, the flow rate is 2.43mm3/sec.
When the printer is extruding at 40mm/sec with the same line width and layer height as above, the flow rate is 2.43mm3/sec.
So what we are asking the extruder to do in this example is **slow down from 12.16mm3/sec flow to 2.43mm3/sec flow in 0.08 seconds** or an extrusion change rate of 121mm3/sec2.
So what we are asking the extruder to do in this example is **slow down from 12.16mm3/sec flow to 2.43mm3/sec flow in 0.08 seconds** or an extrusion change rate of 121mm3/sec2.
**This value is proportional to the acceleration of the printer. At 4k this value doubles, at 1k it is half and is independent of the speed of movement or starting and ending speeds.**
**This value is proportional to the acceleration of the printer. At 4k this value doubles, at 1k it is half and is independent of the speed of movement or starting and ending speeds.**
**This value is also proportional to the line width - double the line width will result in double the extrusion rate change and vice versa. Same for layer height.**
**This value is also proportional to the line width - double the line width will result in double the extrusion rate change and vice versa. Same for layer height.**
So, continuing with the worked example, a 2k acceleration produces an extrusion rate change ramp of 121mm3/sec2. **Therefore, setting a value higher than this would not bring any benefit to the print quality as the motion system would slow down less aggressively based on its acceleration settings.**
So, continuing with the worked example, a 2k acceleration produces an extrusion rate change ramp of 121mm3/sec2. **Therefore, setting a value higher than this would not bring any benefit to the print quality as the motion system would slow down less aggressively based on its acceleration settings.**
**Therefore, the acceleration values act as a meaningfull upper limit to this setting.** An indicative set of values has been provided later in this page.
**Therefore, the acceleration values act as a meaningfull upper limit to this setting.** An indicative set of values has been provided later in this page.
### Pressure advance vs extrusion rate smoothing
### Pressure advance vs extrusion rate smoothing
Then we need to consider pressure advance and smooth time as factors that influence extrusion rate.
Then we need to consider pressure advance and smooth time as factors that influence extrusion rate.
**Pressure Advance** adjusts the extruder's speed to account for the pressure changes inside the hot ends melt zone. When the print head moves and extrudes filament, there's a delay between the movement of the extruder gear and the plastic being extruded due to the compressibility of the molten plastic in the hot end. This delay can cause too much plastic to be extruded when the print head starts moving or not enough plastic when the print head stops, leading to issues like blobbing or under-extrusion.
**Pressure Advance** adjusts the extruder's speed to account for the pressure changes inside the hot ends melt zone. When the print head moves and extrudes filament, there's a delay between the movement of the extruder gear and the plastic being extruded due to the compressibility of the molten plastic in the hot end. This delay can cause too much plastic to be extruded when the print head starts moving or not enough plastic when the print head stops, leading to issues like blobbing or under-extrusion.
**Pressure Advance Smooth time** helps to mitigate potential negative effects on print quality due to the rapid changes in extruder flow rate, which are controlled by the Pressure Advance algorithm. This parameter essentially adds a smoothing effect to the adjustments made by Pressure Advance, aiming to prevent sharp or sudden changes in the extrusion rate.
**Pressure Advance Smooth time** helps to mitigate potential negative effects on print quality due to the rapid changes in extruder flow rate, which are controlled by the Pressure Advance algorithm. This parameter essentially adds a smoothing effect to the adjustments made by Pressure Advance, aiming to prevent sharp or sudden changes in the extrusion rate.
When Pressure Advance adjusts the extruder speed to compensate for the pressure build-up or reduction in the hot end, it can lead to abrupt changes in the flow rate. These abrupt changes can potentially cause issues like:
When Pressure Advance adjusts the extruder speed to compensate for the pressure build-up or reduction in the hot end, it can lead to abrupt changes in the flow rate. These abrupt changes can potentially cause issues like:
1. Extruder motor skipping,
2. Increased wear on the extruder gear and filament, 1. Extruder motor skipping,
3. Visible artifacts on the print surface due to non-uniform extrusion. 2. Increased wear on the extruder gear and filament,
3. Visible artifacts on the print surface due to non-uniform extrusion.
The smooth time setting introduces a controlled delay over which the Pressure Advance adjustments are spread out. This results in a more gradual application or reduction of extrusion pressure, leading to smoother transitions in filament flow.
The smooth time setting introduces a controlled delay over which the Pressure Advance adjustments are spread out. This results in a more gradual application or reduction of extrusion pressure, leading to smoother transitions in filament flow.
The trade-off is extrusion accuracy. There is a deviation between the requested extrusion amount and the actual extrusion amount due to this smoothing.
The trade-off is extrusion accuracy. There is a deviation between the requested extrusion amount and the actual extrusion amount due to this smoothing.
**1. Increasing Smooth Time:** Leads to more gradual changes in extrusion pressure. While this can reduce artifacts and stress on the extruder system, setting it too high may diminish the effectiveness of Pressure Advance, as the compensation becomes too delayed to counteract the pressure dynamics accurately.
**1. Increasing Smooth Time:** Leads to more gradual changes in extrusion pressure. While this can reduce artifacts and stress on the extruder system, setting it too high may diminish the effectiveness of Pressure Advance, as the compensation becomes too delayed to counteract the pressure dynamics accurately.
**2. Decreasing Smooth Time:** Makes the Pressure Advance adjustments more immediate, which can improve the responsiveness of pressure compensation but may also reintroduce abrupt changes in flow rate, potentially leading to the issues mentioned above.
**2. Decreasing Smooth Time:** Makes the Pressure Advance adjustments more immediate, which can improve the responsiveness of pressure compensation but may also reintroduce abrupt changes in flow rate, potentially leading to the issues mentioned above.
In essence, p**ressure advance smooth time creates an intentional deviation from the ideal extruder rotation** and, therefore, extrusion amount, to allow the printer's extruder to perform within its mechanical limits. Typically, this value is set to 0.04sec, which means that when Pressure Advance adjusts the extruder's flow rate to compensate for changes in pressure within the hot end, these adjustments are spread out over a period of 0.04 seconds.
In essence, **pressure advance smooth time creates an intentional deviation from the ideal extruder rotation** and, therefore, extrusion amount, to allow the printer's extruder to perform within its mechanical limits. Typically, this value is set to 0.04sec, which means that when Pressure Advance adjusts the extruder's flow rate to compensate for changes in pressure within the hot end, these adjustments are spread out over a period of 0.04 seconds.
There is a great example of pressure advance smooth time induced deviations [here](https://klipper.discourse.group/t/pressure-advance-smooth-time-skews-pressure-advance/13451) that is worth a read to get more insight in this trade-off.
There is a great example of pressure advance smooth time induced deviations in [this Klipper forum post](https://klipper.discourse.group/t/pressure-advance-smooth-time-skews-pressure-advance/13451) that is worth a read to get more insight in this trade-off.
In the worked example above, **we need to set an Extrusion Rate smoothing value enough to decrease the error introduced by pressure advance smooth time against the produced output flow.** The lower the extrusion rate smoothing value, the lower the changes in flow over time hence the lower the absolute deviation from the ideal extrusion caused by the smooth time algorithm. However, going too low will result in a material decrease in overall print speed, as the print speed will be materially reduced to achieve low extrusion deviations between features, for no real benefit after a point.
In the worked example above, **we need to set an Extrusion Rate smoothing value enough to decrease the error introduced by pressure advance smooth time against the produced output flow.** The lower the extrusion rate smoothing value, the lower the changes in flow over time hence the lower the absolute deviation from the ideal extrusion caused by the smooth time algorithm. However, going too low will result in a material decrease in overall print speed, as the print speed will be materially reduced to achieve low extrusion deviations between features, for no real benefit after a point.
**The best way to find what the lower beneficial limit is through experimentation.** Print an object with sharp overhangs that are slowed down because off the overhang print speed settings and observe for extrusion inconsistencies.
**The best way to find what the lower beneficial limit is through experimentation.** Print an object with sharp overhangs that are slowed down because off the overhang print speed settings and observe for extrusion inconsistencies.
<h2>Finding the ideal Extrusion Rate smoothing value</h2>
## Finding the ideal Extrusion Rate smoothing value
**Firstly, this value needs to be lower than the extrusion rate changes resulting from the acceleration profile of the printer.** As, generally, the greatest impact is in external wall finish, use your external perimeter acceleration as a point of reference.
**Firstly, this value needs to be lower than the extrusion rate changes resulting from the acceleration profile of the printer.** As, generally, the greatest impact is in external wall finish, use your external perimeter acceleration as a point of reference.
**Below are some approximate ERS values for 0.42 line width and 0.16 layer height.**
**Below are some approximate ERS values for 0.42 line width and 0.16 layer height.**
1. 30mm3/sec for 0.5k acceleration
2. 60.5mm3/sec for 1k acceleration 1. 30mm3/sec for 0.5k acceleration
3. 121mm3/sec2 for 2k acceleration 2. 60.5mm3/sec for 1k acceleration
4. 242mm3/sec2 for 4k acceleration 3. 121mm3/sec2 for 2k acceleration
4. 242mm3/sec2 for 4k acceleration
**Below are some approximate ERS values for 0.42 line width and 0.20 layer height.**
**Below are some approximate ERS values for 0.42 line width and 0.20 layer height.**
1. 38mm3/sec for 0.5k acceleration
2. 76mm3/sec for 1k acceleration 1. 38mm3/sec for 0.5k acceleration
3. 150mm3/sec2 for 2k acceleration 2. 76mm3/sec for 1k acceleration
4. 300mm3/sec2 for 4k acceleration 3. 150mm3/sec2 for 2k acceleration
4. 300mm3/sec2 for 4k acceleration
**Below are some approximate ERS values for 0.45 line width and 0.16 layer height.**
**Below are some approximate ERS values for 0.45 line width and 0.16 layer height.**
1. 32mm3/sec for 0.5k acceleration
2. 65mm3/sec for 1k acceleration 1. 32mm3/sec for 0.5k acceleration
3. 129mm3/sec2 for 2k acceleration 2. 65mm3/sec for 1k acceleration
4. 260mm3/sec2 for 4k acceleration 3. 129mm3/sec2 for 2k acceleration
4. 260mm3/sec2 for 4k acceleration
**So, your tuning starting point needs to be an ERS value that is less than this.** A good point experiment with test prints would be **a value of 60-80%** of the above maximum values. This will give some meaningful assistance to pressure advance, reducing the deviation introduced by pressure advance smooth time. The greater the smooth time, the greater the quality benefit will be.
**So, your tuning starting point needs to be an ERS value that is less than this.** A good point experiment with test prints would be **a value of 60-80%** of the above maximum values. This will give some meaningful assistance to pressure advance, reducing the deviation introduced by pressure advance smooth time. The greater the smooth time, the greater the quality benefit will be.
Therefore, for a **0.42 line width and 0.16 layer height**, the below are a recommended set of starting ERS values
Therefore, for a **0.42 line width and 0.16 layer height**, the below are a recommended set of starting ERS values
1. 18-25mm3/sec for 0.5k acceleration
2. 35-50mm3/sec for 1k acceleration 1. 18-25mm3/sec for 0.5k acceleration
3. 70-100mm3/sec2 for 2k acceleration 2. 35-50mm3/sec for 1k acceleration
4. 145-200mm3/sec2 for 4k acceleration 3. 70-100mm3/sec2 for 2k acceleration
4. 145-200mm3/sec2 for 4k acceleration
If you are printing with a 0.2 layer height, you can increase these values by 25% and similarly reduce if printing with lower.
If you are printing with a 0.2 layer height, you can increase these values by 25% and similarly reduce if printing with lower.
**The second factor is your extruder's mechanical abilities.** Direct drive extruders with a good grip on the filament typically are more responsive to extrusion rate changes. Similarly with stiff filaments. So, a Bowden printer or when printing softer material like TPU or soft PLAs like polyterra there is more opportunity for the extruder to slip or deviate from the desired extrusion amount due to mechanical grip or material deformation or just delay in propagating the pressure changes (in a Bowden setup).
**The second factor is your extruder's mechanical abilities.** Direct drive extruders with a good grip on the filament typically are more responsive to extrusion rate changes. Similarly with stiff filaments. So, a Bowden printer or when printing softer material like TPU or soft PLAs like polyterra there is more opportunity for the extruder to slip or deviate from the desired extrusion amount due to mechanical grip or material deformation or just delay in propagating the pressure changes (in a Bowden setup).
**The final factor is the deviation introduced by pressure advance smooth time**, or equivalents in closed source firmware. The higher this value the larger the extrusion deviation from ideal. If you are using a direct drive extruder, reduce this value to 0.02 in your klipper firmware before tuning ERS, as a lower value results in lower deviations to mitigate. Then proceed to experimentaly tune ERS.
**The final factor is the deviation introduced by pressure advance smooth time**, or equivalents in closed source firmware. The higher this value the larger the extrusion deviation from ideal. If you are using a direct drive extruder, reduce this value to 0.02 in your klipper firmware before tuning ERS, as a lower value results in lower deviations to mitigate. Then proceed to experimentaly tune ERS.
**So where does that leave us?**
**So where does that leave us?**
Perform a test print with the above ERS settings as a starting point and adjust to your liking! If you notice budging on sharp overhangs where speed changes, like the hull of the benchy, reduce this value by 10% and try again.
Perform a test print with the above ERS settings as a starting point and adjust to your liking! If you notice budging on sharp overhangs where speed changes, like the hull of the benchy, reduce this value by 10% and try again.
If you're not noticing any artefacts, increase by 10%, but dont go over the maximum values recommended above because then this feature would have no effect in your print.
If you're not noticing any artefacts, increase by 10%, but dont go over the maximum values recommended above because then this feature would have no effect in your print.
## A note for Bowden printers using marlin without pressure advance.
## A note for Bowden printers using marlin without pressure advance
If your printer is not equipped with pressure advance and, especially, if you are using a Bowden setup, you dont have the benefit of pressure advance dynamically adjusting your flow.
If your printer is not equipped with pressure advance and, especially, if you are using a Bowden setup, you dont have the benefit of pressure advance dynamically adjusting your flow.
In this special case, ERS will be doing all the heavy lifting that pressure advance would typically perform. In this scenario a low value of 8-10mm3/sec is usually recommended, irrespective of your acceleration settings, to smooth out pressure changes in the extrusion system as much as possible without impacting print speed too much.
In this special case, ERS will be doing all the heavy lifting that pressure advance would typically perform. In this scenario a low value of 8-10mm3/sec is usually recommended, irrespective of your acceleration settings, to smooth out pressure changes in the extrusion system as much as possible without impacting print speed too much.
## A note on ERS Segment length
## A note on ERS Segment length
Ideally you want this value set to 1 to allow for the largest number of steps between each speed transition. However, this may result in a too large of a gcode, with too many commands sent to your MCU per second and it may not be able to keep up. It will also slow down the Orca slicer front end as the sliced model is more complex to render.
Ideally you want this value set to 1 to allow for the largest number of steps between each speed transition. However, this may result in a too large of a gcode, with too many commands sent to your MCU per second and it may not be able to keep up. It will also slow down the Orca slicer front end as the sliced model is more complex to render.
For Klipper printers, a segment length of 1 works OK as the RPI or similar have enough computational power to handle the gcode command volume.
For Klipper printers, a segment length of 1 works OK as the RPI or similar have enough computational power to handle the gcode command volume.
Similarly, for a Bambu lab printer, a segment length of 1 works well. **However, if you do notice your printer stuttering or stalling** (which may be the case with the lower powered P1 series printers) **or getting "Timer too close" errors** in Klipper, **increase this value to 2 or 3**. This would reduce the effectiveness of the setting but will present a more manageable load to your printer.
Similarly, for a Bambu lab printer, a segment length of 1 works well. **However, if you do notice your printer stuttering or stalling** (which may be the case with the lower powered P1 series printers) **or getting "Timer too close" errors** in Klipper, **increase this value to 2 or 3**. This would reduce the effectiveness of the setting but will present a more manageable load to your printer.
## Limitations
## Limitations
**This feature can only work where speed changes are induced by the slicer** - for example when transitioning from fast to slow print moves when printing overhangs, bridges and from printing internal features to external features and vice versa.
**This feature can only work where speed changes are induced by the slicer** - for example when transitioning from fast to slow print moves when printing overhangs, bridges and from printing internal features to external features and vice versa.
However, it will not affect extruder behaviour when the printer is slowing down due to firmware commands - for example when turning around corners.
However, it will not affect extruder behaviour when the printer is slowing down due to firmware commands - for example when turning around corners.
In this case, the printer slows down and then accelerates independently of what the slicer has requested. In this case, the slicer is commanding a consistent speed; however, the printer is adjusting this to operate within its printer kinematic limits (SCV/Jerk) and accelerations. As the slicer is not aware of this slow down, it cannot apply pre-emptive extrusion rate smoothing to the feature and instead, the changes are governed by the printer firmware exclusively.
In this case, the printer slows down and then accelerates independently of what the slicer has requested. In this case, the slicer is commanding a consistent speed; however, the printer is adjusting this to operate within its printer kinematic limits (SCV/Jerk) and accelerations. As the slicer is not aware of this slow down, it cannot apply pre-emptive extrusion rate smoothing to the feature and instead, the changes are governed by the printer firmware exclusively.
## Credits
## Credits
**Original feature authors and creators:** The Prusa Slicer team, including [@bubnikv](https://github.com/bubnikv), [@hejllukas](https://github.com/hejllukas).
**Original feature authors and creators:** The Prusa Slicer team, including [@bubnikv](https://github.com/bubnikv), [@hejllukas](https://github.com/hejllukas).
**Enhanced by:** [@MGunlogson](https://github.com/MGunlogson), introducing the feature to external perimeters, enhancing it by taking into account travel, retraction and implementing near-contiguous extrusions pressure equalizer adjustments.
**Enhanced by:** [@MGunlogson](https://github.com/MGunlogson), introducing the feature to external perimeters, enhancing it by taking into account travel, retraction and implementing near-contiguous extrusions pressure equalizer adjustments.
**Ported to Orca:** [@igiannakas](https://github.com/igiannakas).
**Ported to Orca:** [@igiannakas](https://github.com/igiannakas).
**Enhanced by:** [@noisyfox](https://github.com/Noisyfox), per object pressure equalization and fixing calculation logic bugs.
**Enhanced by:** [@noisyfox](https://github.com/Noisyfox), per object pressure equalization and fixing calculation logic bugs.
**Wiki page:** [@igiannakas](https://github.com/igiannakas).
**Wiki page:** [@igiannakas](https://github.com/igiannakas).
**Overall Orca owner and assurance:** [@softfever](https://github.com/SoftFever).
**Overall Orca owner and assurance:** [@softfever](https://github.com/SoftFever).
**Community testing and feedback:** [@HakunMatat4](https://github.com/HakunMatat4), [@psiberfunk](https://github.com/psiberfunk), [@u3dreal](https://github.com/u3dreal) and more.
**Community testing and feedback:** [@HakunMatat4](https://github.com/HakunMatat4), [@psiberfunk](https://github.com/psiberfunk), [@u3dreal](https://github.com/u3dreal) and more.

View file

@ -0,0 +1,335 @@
# Infill
Infill is the internal structure of a 3D print, providing strength and support. It can be adjusted to balance material usage, print time, and part strength.
## Sparse infill density
Density usually should be calculated as a % of the total infill volume, not the total print volume.
Higher density increases strength but also material usage and print time. Lower density saves material and time but reduces strength.
Nevertheless, **not all patterns interpret density the same way**, so the actual material usage may vary. You can see each pattern's material usage in the [Sparse Infill Pattern](#sparse-infill-pattern) section.
## Sparse Infill Pattern
Infill patterns determine how material is distributed within a print. Different patterns can affect strength, flexibility, and print speed using the same density setting.
There is no one-size-fits-all solution, as the best pattern depends on the specific print and its requirements.
Many patterns may look similar and have similar overall specifications, but they can behave very differently in practice.
As most settings in 3D printing, experience is the best way to determine which pattern works best for your specific needs.
| Infill | X-Y Strength | Z Strength | Material Usage | Print Time |
|---------------------------------------------|--------------|-------------|----------------|-------------|
| [Concentric](#concentric) | Low | Normal | Normal | Normal |
| [Rectilinear](#rectilinear) | Normal-Low | Low | Normal | Normal |
| [Grid](#grid) | High | High | Normal | Normal |
| [2D Lattice](#2d-lattice) | Normal-Low | Low | Normal | Normal |
| [Line](#line) | Low | Low | Normal | Normal-Low |
| [Cubic](#cubic) | High | High | Normal | Normal-Low |
| [Triangles](#triangles) | High | Normal | Normal | Normal-Low |
| [Tri-hexagon](#tri-hexagon) | High | Normal-High | Normal | Normal-Low |
| [Gyroid](#gyroid) | High | High | Normal | Normal-High |
| [TPMS-D](#tpms-d) | High | High | Normal | High |
| [Honeycomb](#honeycomb) | High | High | High | Ultra-High |
| [Adaptive Cubic](#adaptive-cubic) | Normal-High | Normal-High | Low | Low |
| [Aligned Rectilinear](#aligned-rectilinear) | Normal-Low | Normal | Normal | Normal |
| [2D Honeycomb](#2d-honeycomb) | Normal-Low | Normal-Low | Normal | Normal-Low |
| [3D Honeycomb](#3d-honeycomb) | Normal-High | Normal-High | Normal-Low | High |
| [Hilbert Curve](#hilbert-curve) | Low | Normal | Normal | High |
| [Archimedean Chords](#archimedean-chords) | Low | Normal | Normal | Normal-Low |
| [Octagram Spiral](#octagram-spiral) | Low | Normal | Normal | Normal-High |
| [Support Cubic](#support-cubic) | Low | Low | Extra-Low | Extra-Low |
| [Lightning](#lightning) | Low | Low | Ultra-Low | Ultra-Low |
| [Cross Hatch](#cross-hatch) | Normal-High | Normal-High | Normal | Normal-High |
| [Quarter Cubic](#quarter-cubic) | High | High | Normal | Normal-Low |
> [!NOTE]
> You can download [infill_desc_calculator.xlsx](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/print_settings/strength/infill_desc_calculator.xlsx?raw=true) used to calculate the values above.
### Concentric
Fills the area with progressively smaller versions of the outer contour, creating a concentric pattern. Ideal for 100% infill or flexible prints.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal-High
![infill-top-concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-concentric.png?raw=true)
### Rectilinear
Parallel lines spaced according to infill density. Each layer is printed perpendicular to the previous, resulting in low vertical bonding.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Low
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal-High
![infill-top-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-rectilinear.png?raw=true)
### Grid
Two-layer pattern of perpendicular lines, forming a grid. Overlapping points may cause noise or artifacts.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal
![infill-top-grid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-grid.png?raw=true)
### 2D Lattice
Low-strength pattern with good flexibility. Angle 1 and angle 2 TBD.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Low
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal
![infill-top-2d-lattice](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-2d-lattice.png?raw=true)
### Line
Similar to [rectilinear](#rectilinear), but each line is slightly rotated to improve print speed.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Low
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal-High
![infill-top-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-line.png?raw=true)
### Cubic
3D cube pattern with corners facing down, distributing force in all directions. Triangles in the horizontal plane provide good X-Y strength.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal-High
![infill-top-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cubic.png?raw=true)
### Triangles
Triangle-based grid, offering strong X-Y strength but with triple overlaps at intersections.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal-High
![infill-top-triangles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-triangles.png?raw=true)
### Tri-hexagon
Similar to the [triangles](#triangles) pattern but offset to prevent triple overlaps at intersections. This design combines triangles and hexagons, providing excellent X-Y strength.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** Normal-High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal-High
![infill-top-tri-hexagon](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tri-hexagon.png?raw=true)
### Gyroid
Mathematical, isotropic surface providing equal strength in all directions. Excellent for strong, flexible prints and resin filling due to its interconnected structure.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-High
- **Material/Time (Higher better):** Low
![infill-top-gyroid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-gyroid.png?raw=true)
### TPMS-D
Triply Periodic Minimal Surface - D. Hybrid between [Cross Hatch](#cross-hatch) and [Gyroid](#gyroid), combining rigidity and smooth transitions. Isotropic and strong in all directions.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** High
- **Material/Time (Higher better):** Low
![infill-top-tpms-d](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tpms-d.png?raw=true)
### Honeycomb
Hexagonal pattern balancing strength and material use. Double walls in each hexagon increase material consumption.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** High
- **Print Time:** Ultra-High
- **Material/Time (Higher better):** Extra Low
![infill-top-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-honeycomb.png?raw=true)
### Adaptive Cubic
[Cubic](#cubic) pattern with adaptive density: denser near walls, sparser in the center. Saves material and time while maintaining strength, ideal for large prints.
- **Horizontal Strength (X-Y):** Normal-High
- **Vertical Strength (Z):** Normal-High
- **Density Calculation:** Same as [Cubic](#cubic) but reduced in the center
- **Material Usage:** Low
- **Print Time:** Low
- **Material/Time (Higher better):** Normal
![infill-top-adaptive-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-adaptive-cubic.png?raw=true)
### Aligned Rectilinear
Parallel lines spaced by the infill spacing, each layer printed in the same direction as the previous layer. Good horizontal strength perpendicular to the lines, but terrible in parallel direction.
Recommended with layer anchoring to improve not perpendicular strength.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal
![infill-top-aligned-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-aligned-rectilinear.png?raw=true)
### 2D Honeycomb
Vertical Honeycomb pattern. Acceptable torsional stiffness. Developed for low densities structures like wings. Improve over [2D Lattice](#2d-lattice) offers same performance with lower densities.This infill includes a Overhang angle parameter to improve interlayer point of contact and reduce the risk of delamination.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Normal-Low
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal
![infill-top-2d-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-2d-honeycomb.png?raw=true)
### 3D Honeycomb
This infill tries to generate a printable honeycomb structure by printing squares and octagons mantaining a vertical angle high enough to mantian contact with the previous layer.
- **Horizontal Strength (X-Y):** Normal-High
- **Vertical Strength (Z):** Normal-High
- **Density Calculation:** Unknown
- **Material Usage:** Normal-Low
- **Print Time:** High
- **Material/Time (Higher better):** Extra Low
![infill-top-3d-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-3d-honeycomb.png?raw=true)
### Hilbert Curve
Hilbert Curve is a space-filling curve that can be used to create a continuous infill pattern. It is known for its Esthetic appeal and ability to fill space efficiently.
Print speed is very low due to the complexity of the path, which can lead to longer print times. It is not recommended for structural parts but can be used for Esthetic purposes.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** High
- **Material/Time (Higher better):** Extra Low
![infill-top-hilbert-curve](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-hilbert-curve.png?raw=true)
### Archimedean Chords
Spiral pattern that fills the area with concentric arcs, creating a smooth and continuous infill. Can be filled with resin thanks to its interconnected hollow structure, which allows the resin to flow through it and cure properly.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal-High
![infill-top-archimedean-chords](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-archimedean-chords.png?raw=true)
### Octagram Spiral
Esthetic pattern with low strength and high print time.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Normal
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-High
- **Material/Time (Higher better):** Normal
![infill-top-octagram-spiral](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-octagram-spiral.png?raw=true)
### Support Cubic
Support |Cubic is a variation of the [Cubic](#cubic) infill pattern that is specifically designed for support top layers. Will use more material than Lightning infill but will provide better strength. Nevertheless, it is still a low-density infill pattern.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Low
- **Density Calculation:** % of layer before top shell layers
- **Material Usage:** Extra-Low
- **Print Time:** Extra-Low
- **Material/Time (Higher better):** Normal
![infill-top-support-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-support-cubic.png?raw=true)
### Lightning
Ultra-fast, ultra-low material infill. Designed for speed and efficiency, ideal for quick prints or non-structural prototypes.
- **Horizontal Strength (X-Y):** Low
- **Vertical Strength (Z):** Low
- **Density Calculation:** % of layer before top shell layers
- **Material Usage:** Ultra-Low
- **Print Time:** Ultra-Low
- **Material/Time (Higher better):** Extra Low
![infill-top-lightning](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-lightning.png?raw=true)
### Cross Hatch
Similar to [Gyroid](#gyroid) but with linear patterns, creating weak points at internal corners.
- **Horizontal Strength (X-Y):** Normal-High
- **Vertical Strength (Z):** Normal-High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-High
- **Material/Time (Higher better):** Low
![infill-top-cross-hatch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-hatch.png?raw=true)
### Quarter Cubic
[Cubic](#cubic) pattern with extra internal divisions, improving X-Y strength.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
- **Density Calculation:** % of total infill volume
- **Material Usage:** Normal
- **Print Time:** Normal-Low
- **Material/Time (Higher better):** Normal
![infill-top-quarter-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-quarter-cubic.png?raw=true)

View file

@ -64,7 +64,7 @@
[hint:Precise wall] [hint:Precise wall]
text = Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency? text = Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency?
documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/Precise-wall documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision
[hint:Sandwich mode] [hint:Sandwich mode]
text = Sandwich mode\nDid you know that you can use sandwich mode (inner-outer-inner) to improve precision and layer consistency if your model doesn't have very steep overhangs? text = Sandwich mode\nDid you know that you can use sandwich mode (inner-outer-inner) to improve precision and layer consistency if your model doesn't have very steep overhangs?

View file

@ -2076,13 +2076,13 @@ void TabPrint::build()
optgroup = page->new_optgroup(L("Precision"), L"param_precision"); optgroup = page->new_optgroup(L("Precision"), L"param_precision");
optgroup->append_single_option_line("slice_closing_radius"); optgroup->append_single_option_line("slice_closing_radius");
optgroup->append_single_option_line("resolution"); optgroup->append_single_option_line("resolution");
optgroup->append_single_option_line("enable_arc_fitting", "acr-move"); optgroup->append_single_option_line("enable_arc_fitting", "quality_settings_precision#arc-fitting");
optgroup->append_single_option_line("xy_hole_compensation", "xy-hole-contour-compensation"); optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#xy-compensation");
optgroup->append_single_option_line("xy_contour_compensation", "xy-hole-contour-compensation"); optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#xy-compensation");
optgroup->append_single_option_line("elefant_foot_compensation"); optgroup->append_single_option_line("elefant_foot_compensation", "quality_settings_precision#elefant-foot-compensation");
optgroup->append_single_option_line("elefant_foot_compensation_layers"); optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elefant-foot-compensation");
optgroup->append_single_option_line("precise_outer_wall", "Precise-wall"); optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
optgroup->append_single_option_line("precise_z_height", "precise-z-height"); optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
optgroup->append_single_option_line("hole_to_polyhole"); optgroup->append_single_option_line("hole_to_polyhole");
optgroup->append_single_option_line("hole_to_polyhole_threshold"); optgroup->append_single_option_line("hole_to_polyhole_threshold");
optgroup->append_single_option_line("hole_to_polyhole_twisted"); optgroup->append_single_option_line("hole_to_polyhole_twisted");
@ -2096,7 +2096,7 @@ void TabPrint::build()
optgroup->append_single_option_line("ironing_angle"); optgroup->append_single_option_line("ironing_angle");
optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator"); optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
optgroup->append_single_option_line("wall_generator", "wall-generator"); optgroup->append_single_option_line("wall_generator", "quality_settings_wall-generator");
optgroup->append_single_option_line("wall_transition_angle"); optgroup->append_single_option_line("wall_transition_angle");
optgroup->append_single_option_line("wall_transition_filter_deviation"); optgroup->append_single_option_line("wall_transition_filter_deviation");
optgroup->append_single_option_line("wall_transition_length"); optgroup->append_single_option_line("wall_transition_length");
@ -2125,7 +2125,7 @@ void TabPrint::build()
option.opt.is_code = true; option.opt.is_code = true;
option.opt.height = 15; option.opt.height = 15;
optgroup->append_single_option_line(option, "small-area-infill-flow-compensation"); optgroup->append_single_option_line(option, "small-area-infill-flow-compensation");
optgroup = page->new_optgroup(L("Bridging"), L"param_bridge"); optgroup = page->new_optgroup(L("Bridging"), L"param_bridge");
optgroup->append_single_option_line("bridge_flow"); optgroup->append_single_option_line("bridge_flow");
optgroup->append_single_option_line("internal_bridge_flow"); optgroup->append_single_option_line("internal_bridge_flow");
@ -2135,8 +2135,8 @@ void TabPrint::build()
optgroup->append_single_option_line("thick_internal_bridges"); optgroup->append_single_option_line("thick_internal_bridges");
optgroup->append_single_option_line("enable_extra_bridge_layer"); optgroup->append_single_option_line("enable_extra_bridge_layer");
optgroup->append_single_option_line("dont_filter_internal_bridges"); optgroup->append_single_option_line("dont_filter_internal_bridges");
optgroup->append_single_option_line("counterbore_hole_bridging","counterbore-hole-bridging"); optgroup->append_single_option_line("counterbore_hole_bridging");
optgroup = page->new_optgroup(L("Overhangs"), L"param_overhang"); optgroup = page->new_optgroup(L("Overhangs"), L"param_overhang");
optgroup->append_single_option_line("detect_overhang_wall"); optgroup->append_single_option_line("detect_overhang_wall");
optgroup->append_single_option_line("make_overhang_printable"); optgroup->append_single_option_line("make_overhang_printable");
@ -2156,15 +2156,15 @@ void TabPrint::build()
optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell"); optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
optgroup->append_single_option_line("top_shell_layers"); optgroup->append_single_option_line("top_shell_layers");
optgroup->append_single_option_line("top_shell_thickness"); optgroup->append_single_option_line("top_shell_thickness");
optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface"); optgroup->append_single_option_line("top_surface_pattern");
optgroup->append_single_option_line("bottom_shell_layers"); optgroup->append_single_option_line("bottom_shell_layers");
optgroup->append_single_option_line("bottom_shell_thickness"); optgroup->append_single_option_line("bottom_shell_thickness");
optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface"); optgroup->append_single_option_line("bottom_surface_pattern");
optgroup->append_single_option_line("top_bottom_infill_wall_overlap"); optgroup->append_single_option_line("top_bottom_infill_wall_overlap");
optgroup = page->new_optgroup(L("Infill"), L"param_infill"); optgroup = page->new_optgroup(L("Infill"), L"param_infill");
optgroup->append_single_option_line("sparse_infill_density"); optgroup->append_single_option_line("sparse_infill_density", "strength_settings_infill#sparse-infill-density");
optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse"); optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern");
optgroup->append_single_option_line("lattice_angle_1"); optgroup->append_single_option_line("lattice_angle_1");
optgroup->append_single_option_line("lattice_angle_2"); optgroup->append_single_option_line("lattice_angle_2");
optgroup->append_single_option_line("infill_overhang_angle"); optgroup->append_single_option_line("infill_overhang_angle");
@ -2249,11 +2249,11 @@ void TabPrint::build()
optgroup->append_single_option_line("initial_layer_jerk"); optgroup->append_single_option_line("initial_layer_jerk");
optgroup->append_single_option_line("travel_jerk"); optgroup->append_single_option_line("travel_jerk");
optgroup->append_single_option_line("default_junction_deviation"); optgroup->append_single_option_line("default_junction_deviation");
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15); optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "extrusion-rate-smoothing"); optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_extrusion_rate_smoothing");
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "extrusion-rate-smoothing"); optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_extrusion_rate_smoothing");
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "extrusion-rate-smoothing"); optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_extrusion_rate_smoothing");
page = add_options_page(L("Support"), "custom-gcode_support"); // ORCA: icon only visible on placeholders page = add_options_page(L("Support"), "custom-gcode_support"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Support"), L"param_support"); optgroup = page->new_optgroup(L("Support"), L"param_support");