diff --git a/README.md b/README.md
index 9c32337e95..3802af7a9e 100644
--- a/README.md
+++ b/README.md
@@ -49,11 +49,13 @@ Optimize your prints with ultra-fast slicing, intelligent support generation, an
- Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
# Wiki
+
The wiki below aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.
Please note that the wiki is a work in progress. We appreciate your patience as we continue to develop and improve it!
**[Access the wiki here](https://github.com/SoftFever/OrcaSlicer/wiki)**
+**[Contribute to the wiki](https://github.com/SoftFever/OrcaSlicer/wiki/How-to-wiki)**
# Download
diff --git a/doc/Auxiliary-fan.md b/doc/Auxiliary-fan.md
index 83f028e935..95d1ec0158 100644
--- a/doc/Auxiliary-fan.md
+++ b/doc/Auxiliary-fan.md
@@ -35,4 +35,4 @@ gcode:
{% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
{% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
SET_FAN_SPEED FAN={fan} SPEED={speed}
-```
\ No newline at end of file
+```
diff --git a/doc/Chamber-temperature.md b/doc/Chamber-temperature.md
index b6ff068bc6..52b81d7aa8 100644
--- a/doc/Chamber-temperature.md
+++ b/doc/Chamber-temperature.md
@@ -4,7 +4,9 @@ OrcaSlicer use `M141/M191` command to control active chamber heater.
If your Filament's `Activate temperature control` and your printer `Support control chamber temperature` option are checked , OrcaSlicer will insert `M191` command at the beginning of the gcode (before `Machine G-code`).
-
+
+
+
> [!NOTE]
> If the machine is equipped with an auxiliary fan, OrcaSlicer will automatically activate the fan during the heating period to help circulate air in the chamber.
@@ -27,7 +29,7 @@ You can use chamber temperature variables in your `Machine G-code` to control th
If you are using Klipper, you can define these macros to control the active chamber heater.
Bellow is a reference configuration for Klipper.
-> [!Important]
+> [!IMPORTANT]
> Don't forget to change the pin name/values to the actual values you are using in the configuration.
```gcode
@@ -61,4 +63,4 @@ gcode:
TEMPERATURE_WAIT SENSOR="heater_generic chamber_heater" MINIMUM={s-1} MAXIMUM={s+1}
M117 Chamber at target temperature
{% endif %}
-```
\ No newline at end of file
+```
diff --git a/doc/Home.md b/doc/Home.md
index 73947de120..c0738b56dd 100644
--- a/doc/Home.md
+++ b/doc/Home.md
@@ -2,9 +2,18 @@
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.
-The Wiki is work in progress so bear with us while we get it up and running!
+- [Print Settings, Tips and Tricks](#print-settings-tips-and-tricks)
+ - [Quality Settings](#quality-settings)
+ - [Speed Settings](#speed-settings)
+ - [Multi material](#multi-material)
+ - [Printer Settings](#printer-settings)
+- [Printer Calibration](#printer-calibration)
+- [Developer Section](#developer-section)
-## Print Settings, Tips and Tricks (Work In Progress)
+> [!NOTE]
+> The Wiki is **Work In Progress** so bear with us while we get it up and running!
+
+## Print Settings, Tips and Tricks
The below sections provide a detailed settings explanation as well as tips and tricks in setting these for optimal print results.
@@ -14,6 +23,7 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Line Width Settings](quality_settings_line_width)
- [Seam Settings](quality_settings_seam)
- [Precise wall](Precise-wall)
+- [Precise Z height](precise-z-height)
- [STL Transformation](stl-transformation)
### Speed Settings
@@ -24,7 +34,7 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Single Extruder Multimaterial](semm)
-### Printer Settings:
+### Printer Settings
- [Air filtration/Exhaust fan handling](air-filtration)
- [Auxiliary fan handling](Auxiliary-fan)
@@ -32,21 +42,22 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Adaptive Bed Mesh](adaptive-bed-mesh)
- [Using different bed types in Orca](bed-types)
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
+- [Fill Patterns](fill-patterns)
## Printer Calibration
-The [Calibration Guide](Calibration) takes you through the key calibration tests in Orca - flow rate, pressure advance, print temperature, retraction, tolerances, etc.
+The [Calibration Guide](Calibration) outlines Orca’s key calibration tests and their suggested order of execution.
+- [Temperature](temp-calib)
- [Flow Rate](flow-rate-calib)
- [Pressure Advance](pressure-advance-calib)
-- [Temperature](temp-calib)
+ - [Adaptive Pressure Advance Guide](adaptive-pressure-advance-calib)
- [Retraction](retraction-calib)
- [Tolerance](tolerance-calib)
- Advanced:
- [Volumetric Speed](volumetric-speed-calib)
- - [Adaptive Pressure Advance Guide](adaptive-pressure-advance-calib)
- - [Input Shaping](input-shaping-calib)
- [Cornering (Jerk & Junction Deviation)](cornering-calib)
+ - [Input Shaping](input-shaping-calib)
## Developer Section
@@ -54,3 +65,4 @@ The [Calibration Guide](Calibration) takes you through the key calibration tests
- [Localization and translation guide](Localization_guide)
- [Developer Reference](Developers-Home)
- [How to create profiles](How-to-create-profiles)
+- [How to contribute to the wiki](How-to-wiki)
diff --git a/doc/How-to-build.md b/doc/How-to-build.md
index 392e47b7f3..49553c039e 100644
--- a/doc/How-to-build.md
+++ b/doc/How-to-build.md
@@ -27,7 +27,7 @@ This guide is for building your Visual Studio 2022 solution for OrcaSlicer on Wi
winget install --id=GitHub.GitLFS -e
```
-> [!Tip]
+> [!TIP]
> GitHub Desktop (optional): A GUI for Git and Git LFS, which already includes both tools.
> ```shell
> winget install --id=GitHub.GitHubDesktop -e
@@ -83,7 +83,7 @@ This guide is for building your Visual Studio 2022 solution for OrcaSlicer on Wi
- autoconf
- texinfo
-> [!Tip]
+> [!TIP]
> You can install most of them by running:
> ```shell
> brew install gettext libtool automake autoconf texinfo
@@ -156,7 +156,7 @@ To build and debug directly in Xcode:
git clone https://github.com/SoftFever/OrcaSlicer && cd OrcaSlicer && ./DockerBuild.sh && ./DockerRun.sh
```
-> [!Note]
+> [!NOTE]
> To troubleshoot common Docker-related errors, refer to the comments in
> ```shell
> DockerRun.sh
@@ -190,4 +190,4 @@ All required dependencies will be installed automatically by the provided shell
```shell
sudo ./BuildLinux.sh -u # Install dependencies
./BuildLinux.sh -dsi # Build OrcaSlicer
-```
\ No newline at end of file
+```
diff --git a/doc/How-to-create-profiles.md b/doc/How-to-create-profiles.md
index e820cfe5bc..c84ac037ff 100644
--- a/doc/How-to-create-profiles.md
+++ b/doc/How-to-create-profiles.md
@@ -82,7 +82,7 @@ graph TD;
OrcaFilamentLibrary-->Vendor_B_filament;
```
-> [!Important]
+> [!IMPORTANT]
> Create new filament profiles only if you have truly specifically tuned the filament for the given printer. Otherwise, use the global library. The global library has a better chance to receive optimizations and updates from OrcaSlicer contributors, which will benefit users of all printers.
### Adding Filament Profiles to the Global Library
@@ -340,7 +340,7 @@ Example:
You can validate your profiles using both the **OrcaSlicer profile validator** and the **Python validation script**. These tools are designed to check different aspects of the profiles, so both should be executed and pass without errors to ensure full compatibility.
> [!NOTE]
-> **✅ Recommendation**: Always run **both** the OrcaSlicer validator and the Python script to ensure all aspects of the profiles are valid.
+> **✅ Recommendation:** Always run **both** the OrcaSlicer validator and the Python script to ensure all aspects of the profiles are valid.
### 1. OrcaSlicer Profile Validator
@@ -413,4 +413,4 @@ You can also enable or disable specific checks:
python ./orca_extra_profile_check.py --vendor="vendor_name" --check-filaments --check-materials
```
-The script will output the number of errors found and exit with a non-zero status code if any issues are detected.
\ No newline at end of file
+The script will output the number of errors found and exit with a non-zero status code if any issues are detected.
diff --git a/doc/How-to-wiki.md b/doc/How-to-wiki.md
new file mode 100644
index 0000000000..86f3779257
--- /dev/null
+++ b/doc/How-to-wiki.md
@@ -0,0 +1,246 @@
+# How to Contribute to the Wiki
+
+This guide explains how to contribute to the Orca Slicer wiki.
+
+Orca Slicer uses GitHub's wiki feature, which allows users and developers to create and edit documentation collaboratively.
+
+We encourage all developers and users to contribute to the wiki by updating existing pages and adding new content. This helps keep the documentation up-to-date and useful for everyone.
+
+When developing new features, please consider updating the wiki to reflect these changes. This ensures that users have access to the latest information and can make the most of the features.
+
+- [Wiki Structure](#wiki-structure)
+ - [Home](#home)
+ - [Index and Navigation](#index-and-navigation)
+ - [File Naming and Organization](#file-naming-and-organization)
+- [Formatting and Style](#formatting-and-style)
+ - [Markdown Formatting](#markdown-formatting)
+ - [Alerts and Callouts](#alerts-and-callouts)
+- [Images](#images)
+ - [Image Naming](#image-naming)
+ - [Image Placement](#image-placement)
+ - [Linking Images](#linking-images)
+ - [Examples](#examples)
+ - [Avoid the Following](#avoid-the-following)
+ - [Resize Images](#resize-images)
+ - [Image Cropping and Highlighting](#image-cropping-and-highlighting)
+ - [Recommended Formats](#recommended-formats)
+- [Structuring Content](#structuring-content)
+- [Commands and Code Blocks](#commands-and-code-blocks)
+- [External Links](#external-links)
+
+## Wiki Structure
+
+Each wiki page is a Markdown file located in the `doc` directory of the repository. The wiki is organized into various sections, each covering different areas of the project.
+
+### Home
+
+The starting point of the Orca Slicer wiki is the **Home** page. From there, you can navigate to different sections and topics related to the project.
+
+When creating a new page or section, be sure to link it from the Home page under the appropriate category.
+
+- **Print Settings:** Detailed explanations of print settings, tips, and tricks for optimizing print quality.
+- **Printer Calibration:** Step-by-step calibration tests in Orca Slicer, including how to interpret the results.
+- **Developer Section:** Information for developers and contributors on building Orca Slicer, localization, and developer resources.
+
+#### Index and Navigation
+
+Github Wiki uses the name of the files as identifiers for the pages. To link to a page, use the file name without the `.md` extension.
+If the file is inside a subdirectory, dont include the subdirectory in the link. Instead, link directly to the file from the Home page.
+
+For example, if you create a new page `doc/calibration/flow-rate-calib.md`, link it as follows:
+
+```markdown
+[Calibration Guide](Calibration)
+```
+
+For pages with extensive content, it's helpful to include a table of contents at the beginning. This allows users to quickly find and access different sections of the page.
+
+```markdown
+- [Wiki Structure](#wiki-structure)
+ - [Home](#home)
+ - [Index and Navigation](#index-and-navigation)
+ - [File Naming and Organization](#file-naming-and-organization)
+- [Formatting and Style](#formatting-and-style)
+```
+
+> [!NOTE]
+> If you're adding a new section, follow the existing structure and ensure it doesn't already fit within an existing category. Link it from the Home page accordingly.
+
+### File Naming and Organization
+
+When creating new pages, follow these file naming conventions:
+
+- Use unique file names to avoid conflicts.
+- Use descriptive names that reflect the page's content.
+- Use kebab-case for filenames (e.g., `How-to-wiki.md`).
+- If the page belongs to a specific section, include the section name in the file name. For example, calibration pages should end with `-calib.md` (e.g., `flow-rate-calib.md`, `pressure-advance-calib.md`).
+- Place files in the appropriate subdirectory when applicable (e.g., `doc/calibration/` for calibration-related content).
+
+## Formatting and Style
+
+Please adhere to the following style and formatting conventions when contributing to the wiki.
+
+### Markdown Formatting
+
+The wiki uses standard Markdown syntax for formatting and aims to maintain a consistent style across all pages. Avoid using raw HTML tags and prefer Markdown formatting instead.
+
+Ensure your indentation is consistent, especially for code blocks and lists.
+
+Refer to the [GitHub Markdown Guide](https://guides.github.com/features/mastering-markdown/) for more information on Markdown syntax.
+
+### Alerts and Callouts
+
+To add alerts or notes, use GitHub’s Markdown alert syntax:
+
+```markdown
+> [!NOTE]
+> Useful information that users should know, even when skimming content.
+
+> [!TIP]
+> Helpful advice for doing things better or more easily.
+
+> [!IMPORTANT]
+> Key information users need to know to achieve their goal.
+
+> [!WARNING]
+> Urgent info that needs immediate user attention to avoid problems.
+
+> [!CAUTION]
+> Advises about risks or negative outcomes of certain actions.
+```
+
+> [!NOTE]
+> Useful information that users should know, even when skimming content.
+
+> [!TIP]
+> Helpful advice for doing things better or more easily.
+
+> [!IMPORTANT]
+> Key information users need to know to achieve their goal.
+
+> [!WARNING]
+> Urgent info that needs immediate user attention to avoid problems.
+
+> [!CAUTION]
+> Advises about risks or negative outcomes of certain actions.
+
+Refer to the [GitHub Alert Guide](https://docs.github.com/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts) for more details.
+
+## Images
+
+Images are encouraged to enhance the clarity and quality of the wiki content. They help illustrate concepts, provide examples, and improve readability.
+
+> [!CAUTION]
+> Do not use images from third-party sources unless you have the proper permissions.
+
+### Image Naming
+
+- Use clear, descriptive filenames that reflect the image content.
+- For section-specific images, include the section name or initials. For example, images related to Pressure Advance could be named `pa-[description].png`.
+
+### Image Placement
+
+- General images should be placed in the `doc/images/` directory.
+- Section-specific images should be stored in their corresponding subdirectories (e.g., `doc/images/calibration/` for calibration content).
+
+### Linking Images
+
+Always use raw GitHub URLs for image links to ensure correct display:
+
+Format = `![[filename]](` + Base URL + filename.extension + Raw tag + `)`
+
+- Base URL:
+ ```markdown
+ https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/
+ ```
+- Raw tag:
+ ```markdown
+ ?raw=true
+ ```
+
+#### Examples
+
+- For an image in `doc/images/` named `example.png`:
+
+ ```markdown
+ 
+ ```
+
+- For an image in a subdirectory like `doc/images/calibration/pa-example.svg`:
+ ```markdown
+ 
+ ```
+
+> [!IMPORTANT]
+> New or Moved Images will not appear in the preview until the Pull Request is merged. Double-check your paths.
+> If you are changing an image path, ensure all links to that image are updated accordingly.
+
+#### Avoid the Following
+
+- Relative paths
+- GitHub Assets, user content, or user-images URLs
+- External image links from unreliable or temporary platforms
+- Images containing personal or sensitive information
+- Using images for content that can be expressed in text, such as equations or code—use Markdown syntax or Mermaid/Math formatting instead.
+
+> [!NOTE]
+> When contributing section-specific images, follow the naming conventions and directory structure.
+
+#### Resize Images
+
+Avoid the resize of images and let the Wiki handle it automatically.
+
+If resizing is necessary (e.g., for thumbnails), use the following syntax:
+
+HTML Format = `
+```
+
+### Image Cropping and Highlighting
+
+To ensure clarity:
+
+- Crop images to focus on relevant areas.
+- Use annotations like arrows or shapes (circles, rectangles) to highlight key parts—but avoid overloading the image.
+
+### Recommended Formats
+
+- **JPG:** Suitable for photographs. Avoid for images with text or fine detail due to compression artifacts.
+- **PNG:** Ideal for screenshots or images with transparency. Ensure sufficient contrast for light and dark modes.
+- **SVG:** Preferred when possible. SVGs support theme adaptation (light/dark mode), making them ideal for icons and diagrams.
+
+## Structuring Content
+
+Each wiki page should have a clear objective, which helps determine the structure of the content. After a brief introduction, use one of the following formats:
+
+- **Step-by-Step Guide:** Organize content into sections and subsections for tasks requiring sequential actions (e.g., calibration procedures).
+- **GUI-Based Reference:** If sequence isn’t crucial, structure the content following Orca Slicer’s GUI. This format works well for configurable settings or feature overviews.
+ - Example: Explain **Layer Height** before **Initial Layer Height**, as the former applies globally while the latter is specific to the first layer.
+
+## Commands and Code Blocks
+
+When adding commands or code blocks please use the [Code Block with Syntax Highlighting feature of Markdown](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting).
+
+- Use triple backticks (```) to enclose code blocks.
+- Specify the language for proper highlighting and readability.
+
+````markdown
+```json
+{
+ "key": "value"
+}
+```
+````
+
+```json
+{
+ "key": "value"
+}
+```
+
+## External Links
+
+Be careful when linking to external resources. Ensure that the links are relevant and reliable.
+Papers, articles, and other resources should be cited properly.
diff --git a/doc/Precise-wall.md b/doc/Precise-wall.md
index 9dcc26c285..b1ba5f3de3 100644
--- a/doc/Precise-wall.md
+++ b/doc/Precise-wall.md
@@ -22,4 +22,4 @@ This approach enhances the strength of 3D-printed parts. However, it does have s
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.
\ No newline at end of file
+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.
diff --git a/doc/Print-settings.md b/doc/Print-settings.md
deleted file mode 100644
index 1971ef0c57..0000000000
--- a/doc/Print-settings.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Print settings
-
-* [Seam](seam)
-* [Axiliary fan](auxiliary-fan)
-* [Chamber temperature](chamber-temperature)
-* [Air filtration/Exhaust fan](air-filtration)
-* [Single Extruder Multimaterial](semm)
-* [Precise wall](Precise-wall)
\ No newline at end of file
diff --git a/doc/Seam.md b/doc/Seam.md
deleted file mode 100644
index e91bb11580..0000000000
--- a/doc/Seam.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Seam
-
-### Scarf joint seam
-
-WIP...
-
-### Seam gap
-
-
-
-### Role-based wipe speed(auto)
-
-WIP...
-
-### Wipe speed
-
-WIP...
-
-### Wipe on loop(inward movement)
-
-
-
-Use outer wall speed and acceleration instead of travel speed and acceleration.
-Added an option to disable this feature
-
-### Support Cura style outer wall wipe(100% retract before wipe)
-
-
-
-
-Extra length on restart
\ No newline at end of file
diff --git a/doc/adaptive-bed-mesh.md b/doc/adaptive-bed-mesh.md
index e3595196d7..445e5083bc 100644
--- a/doc/adaptive-bed-mesh.md
+++ b/doc/adaptive-bed-mesh.md
@@ -6,7 +6,7 @@ This feature allows users to seamlessly integrate adaptive bed mesh commands wit
The implementation is designed to be straightforward, requiring no additional plugins or alterations to firmware settings, thereby enhancing user experience and print quality directly from Orca Slicer.
-
+
## Settings in Orca Slicer:
@@ -54,4 +54,4 @@ BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]
M557 X{adaptive_bed_mesh_min[0]}:{adaptive_bed_mesh_max[0]} Y{adaptive_bed_mesh_min[1]}:{adaptive_bed_mesh_max[1]} P{bed_mesh_probe_count[0]}:{bed_mesh_probe_count[1]}
```
-
\ No newline at end of file
+
diff --git a/doc/adaptive-pressure-advance.md b/doc/adaptive-pressure-advance.md
deleted file mode 100644
index 2f1b979ec1..0000000000
--- a/doc/adaptive-pressure-advance.md
+++ /dev/null
@@ -1,200 +0,0 @@
-# Adaptive Pressure Advance
-
-This feature aims to dynamically adjust the printer’s pressure advance to better match the conditions the toolhead is facing during a print. Specifically, to more closely align to the ideal values as flow rate, acceleration, and bridges are encountered.
-This wiki page aims to explain how this feature works, the prerequisites required to get the most out of it as well as how to calibrate it and set it up.
-
-## Settings Overview
-
-This feature introduces the below options under the filament settings:
-
-1. **Enable adaptive pressure advance:** This is the on/off setting switch for adaptive pressure advance.
-2. **Enable adaptive pressure advance for overhangs:** Enable adaptive PA for overhangs as well as when flow changes within the same feature. This is an experimental option because if the PA profile is not set accurately, it will cause uniformity issues on the external surfaces before and after overhangs. It is recommended to start with this option switched off and enable it after the core adaptive pressure advance feature is calibrated correctly.
-3. **Pressure advance for bridges:** Sets the desired pressure advance value for bridges. Set it to 0 to disable this feature. Experiments have shown that a lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after a bridge, which is caused by the pressure drop in the nozzle when printing in the air. Therefore, a lower pressure advance value helps counteract this. A good starting point is approximately half your usual PA value.
-4. **Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below.
-5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but it’s the ultimate backstop).
-
-
-
-## Pre-Requisites
-
-This feature has been tested with Klipper-based printers. While it may work with Marlin or Bambu lab printers, it is currently untested with them. It shouldn’t adversely affect the machine; however, the quality results from enabling it are not validated.
-
-**Older versions of Klipper used to stutter when pressure advance was changed while the toolhead was in motion. This has been fixed with the latest Klipper firmware releases. Therefore, make sure your Klipper installation is updated to the latest version before enabling this feature, in order to avoid any adverse quality impacts.**
-
-Klipper firmware released after July 11th, 2024 (version greater than approximately v0.12.0-267) contains the above fix and is compatible with adaptive pressure advance. If you are upgrading from an older version, make sure you update both your Klipper installation as well as reflash the printer MCU’s (main board and toolhead board if present).
-
-## Use case (what to expect)
-
-Following experimentation, it has been noticed that the optimal pressure advance value is less:
-
-1. The faster you print (hence the higher the volumetric flow rate requested from the toolhead).
-2. The larger the layer height (hence the higher the volumetric flow rate requested from the toolhead).
-3. The higher the print acceleration is.
-
-What this means is that we never get ideal PA values for each print feature, especially when they vary drastically in speed and acceleration. We can tune PA for a faster print speed (flow) but compromise on corner sharpness for slower speeds or tune PA for corner sharpness and deal with slight corner-perimeter separation in faster speeds. The same goes for accelerations as well as different layer heights.
-
-This compromise usually means that we settle for tuning an "in-between" PA value between slower external features and faster internal features so we don't get gaps, but also not get too much bulging in external perimeters.
-
-**However, what this also means is that if you are printing with a single layer height, single speed, and acceleration, there is no need to enable this feature.**
-
-Adaptive pressure advance aims to address this limitation by implementing a completely different method of setting pressure advance. **Following a set of PA calibration tests done at different flow rates (speeds and layer heights) and accelerations, a pressure advance model is calculated by the slicer.** Then that model is used to emit the best fit PA for any arbitrary feature flow rate (speed) and acceleration used in the print process.
-
-In addition, it means that you only need to tune this feature once and print across different layer heights with good PA performance.
-
-Finally, if during calibration you notice that there is little to no variance between the PA tests, this feature is redundant for you. **From experiments, high flow nozzles fitted on high-speed core XY printers appear to benefit the most from this feature as they print with a larger range of flow rates and at a larger range of accelerations.**
-
-### Expected results:
-
-With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
-
-In addition, seams should appear smooth with no bulging or under extrusion.
-
-Solid infill should have no gaps, pinholes, or separation from the perimeters.
-
-Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
-
-
-## How to calibrate the adaptive pressure advance model
-
-### Defining the calibration sets
-
-Firstly, it is important to understand your printer speed and acceleration limits in order to set meaningful boundaries for the calibrations:
-
-1. **Upper acceleration range:** Do not attempt to calibrate adaptive PA for an acceleration that is larger than what the Klipper input shaper calibration tool recommends for your selected shaper. For example, if Klipper recommends an EI shaper with 4k maximum acceleration for your slowest axis (usually the Y axis), don’t calibrate adaptive PA beyond that value. This is because after 4k the input shaper smoothing is magnified and the perimeter separations that appear like PA issues are caused by the input shaper smoothing the shape of the corner. Basically, you’d be attempting to compensate for an input shaper artefact with PA.
-2. **Upper print speed range:** The Ellis PA pattern test has been proven to be the most efficient and effective test to run to calibrate adaptive PA. It is fast and allows for a reasonably accurate and easy-to-read PA value. However, the size of the line segments is quite small, which means that for the faster print speeds and slower accelerations, the toolhead will not be able to reach the full flow rate that we are calibrating against. It is therefore generally not recommended to attempt calibration with a print speed of higher than ~200-250mm/sec and accelerations slower than 1k in the PA pattern test. If your lowest acceleration is higher than 1k, then proportionally higher maximum print speeds can be used.
-
-**Remember:** With the calibration process, we aim to create a PA – Flow Rate – Acceleration profile for the toolhead. As we cannot directly control flow rate, we use print speed as a proxy (higher speed -> higher flow).
-
-With the above in mind, let’s create a worked example to identify the optimal number of PA tests to calibrate the adaptive PA model.
-
-**The below starting points are recommended for the majority of Core XY printers:**
-
-1. **Accelerations:** 1k, 2k, 4k
-2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
-
-**That means we need to run 3x4 = 12 PA tests and identify the optimal PA for them.**
-
-Finally, if the maximum acceleration given by input shaper is materially higher than 4k, run a set of tests with the higher accelerations. For example, if input shaper allows a 6k value, run PA tests as below:
-
-1. **Accelerations:** 1k, 2k, 4k, 6k
-2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
-
-Similarly, if the maximum value recommended is 12k, run PA tests as below:
-
-1. **Accelerations:** 1k, 2k, 4k, 8k, 12k
-2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
-
-So, at worst case you will need to run 5x4 = 20 PA tests if your printer acceleration is on the upper end! In essence, you want enough granularity of data points to create a meaningful model while also not overdoing it with the number of tests. So, doubling the speed and acceleration is a good compromise to arrive at the optimal number of tests.
-For this example, let’s assume that the baseline number of tests is adequate for your printer:
-
-1. **Accelerations:** 1k, 2k, 4k
-2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
-
-We, therefore, need to run 12 PA tests as below:
-
-**Speed – Acceleration**
-
-1. 50 – 1k
-2. 100 – 1k
-3. 150 – 1k
-4. 200 – 1k
-5. 50 – 2k
-6. 100 – 2k
-7. 150 – 2k
-8. 200 – 2k
-9. 50 – 4k
-10. 100 – 4k
-11. 150 – 4k
-12. 200 – 4k
-
-### Identifying the flow rates from the print speed
-
-#### OrcaSlicer 2.2.0 and later
-
-Test parameters needed to build adaptive PA table are printed on the test sample:
-
-
-
-Test sample above was done with acceleration 12000 mm/s² and flow rate 27.13 mm³/s
-
-#### OrcaSlicer 2.1.0 and older.
-
-As mentioned earlier, **the print speed is used as a proxy to vary the extrusion flow rate**. Once your PA test is set up, change the gcode preview to “flow” and move the horizontal slider over one of the herringbone patterns and take note of the flow rate for different speeds.
-
-
-### Running the tests
-
-#### General tips
-
-It is recommended that the PA step is set to a small value, to allow you to make meaningful distinctions between the different tests – **therefore a PA step value of 0.001 is recommended. **
-
-**Set the end PA to a value high enough to start showing perimeter separation for the lowest flow (print speed) and acceleration test.** For example, for a Voron 350 using Revo HF, the maximum value was set to 0.05 as that was sufficient to show perimeter separation even at the slowest flow rates and accelerations.
-
-**If the test is too big to fit on the build plate, increase your starting PA value or the PA step value accordingly until the test can fit.** If the lowest value becomes too high and there is no ideal PA present in the test, focus on increasing the PA step value to reduce the number of herringbones printed (hence the size of the print).
-
-
-
-#### OrcaSlicer 2.3.0 and newer
-
-PA pattern calibration configuration window have been changed to simplify test setup. Now all is needed is to fill list of accelerations and speeds into relevant fields of the calibration window:
-
-
-
-Test patterns generated for each acceleration-speed pair and all parameters are set accordingly. No additional actions needed from user side. Just slice and print all plates generated.
-
-Refer to [Calibration Guide](./Calibration) for more details on batch mode calibration.
-
-#### OrcaSlicer 2.2.0 and older
-
-Setup your PA test as usual from the calibration menu in Orca slicer. Once setup, your PA test should look like the below:
-
-
-
-
-Now input your identified print speeds and accelerations in the fields above and run the PA tests.
-
-**IMPORTANT:** Make sure your acceleration values are all the same in all text boxes. Same for the print speed values and Jerk (XY) values. Make sure your Jerk value is set to the external perimeter jerk used in your print profiles.
-
-#### Test results processing
-
-Now run the tests and note the optimal PA value, the flow, and the acceleration. You should produce a table like this:
-
-
-
-Concatenate the PA value, the flow value, and the acceleration value into the final comma-separated sets to create the values entered in the model as shown above.
-
-**You’re now done! The PA profile is created and calibrated!**
-
-Remember to paste the values in the adaptive pressure advance measurements text box as shown below, and save your filament profile.
-
-
-
-### Tips
-
-#### Model input:
-
-The adaptive PA model built into the slicer is flexible enough to allow for as many or as few increments of flow and acceleration as you want. Ideally, you want at a minimum 3x data points for acceleration and flow in order to create a meaningful model.
-
-However, if you don’t want to calibrate for flow, just run the acceleration tests and leave flow the same for each test (in which case you’ll input only 3 rows in the model text box). In this case, flow will be ignored when the model is used.
-
-Similarly for acceleration – in the above example you’ll input only 4 rows in the model text box, in which case acceleration will be ignored when the model is used.
-
-**However, make sure a triplet of values is always provided – PA value, Flow, Acceleration.**
-
-#### Identifying the right PA:
-
-Higher acceleration and higher flow rate PA tests are easier to identify the optimal PA as the range of “good” values is much narrower. It’s evident where the PA is too large, as gaps start to appear in the corner and where PA is too low, as the corner starts bulging.
-
-However, the lower the flow rate and accelerations are, the range of good values is much wider. Having examined the PA tests even under a microscope, what is evident, is that if you can’t distinguish a value as being evidently better than another (i.e. sharper corner with no gaps) with the naked eye, then both values are correct. In which case, if you can’t find any meaningful difference, simply use the optimal values from the higher flow rates.
-
-- **Too high PA**
-
-
-
-- **Too low PA**
-
-
-
-- **Optimal PA**
-
-
\ No newline at end of file
diff --git a/doc/air-filtration.md b/doc/air-filtration.md
index 0fb06cee34..ec38d632f9 100644
--- a/doc/air-filtration.md
+++ b/doc/air-filtration.md
@@ -36,4 +36,4 @@ gcode:
{% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
{% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
SET_FAN_SPEED FAN={fan} SPEED={speed}
-```
\ No newline at end of file
+```
diff --git a/doc/bed-types.md b/doc/bed-types.md
index 33d0720d04..73b18e6fa0 100644
--- a/doc/bed-types.md
+++ b/doc/bed-types.md
@@ -25,4 +25,4 @@ available bed types are:
"Engineering Plate"
"High Temp Plate"
"Textured PEI Plate"
-```
\ No newline at end of file
+```
diff --git a/doc/developer-reference/Preset-and-bundle.md b/doc/developer-reference/Preset-and-bundle.md
index 883fee45d4..ca2d680f0d 100644
--- a/doc/developer-reference/Preset-and-bundle.md
+++ b/doc/developer-reference/Preset-and-bundle.md
@@ -1,27 +1,27 @@
This page deals with the explanation for 3 classes in the code.
-## [`Preset`](../../src/libslic3r/Preset.hpp)
+## [`Preset`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp)
As the name might suggest this class deals with presets for various things. It defines an enum `Type` which basically tells you what kind of data the present contains. Below are a few explained and there corresponding UI elements
-> [!Warning]
+> [!WARNING]
> There is a lot of outdated and legacy code in the code base.
- `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code.
-
+
- `TYPE_FILAMENT`: As the name suggests this preset is for filaments
-
+
- `TYPE_PRINTER`: Preset for printers.
-
+
There are other preset types but some of them are for SLA. Which is legacy code, since SLA printers are no longer supported. Above 3 are the important types.
-## [`PresetBundle`](../../src/libslic3r/PresetBundle.hpp)
+## [`PresetBundle`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/PresetBundle.hpp)
This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT).
@@ -34,7 +34,7 @@ each one of these contains a collection of processes, filaments and printers res
> [!IMPORTANT]
> Printers, filaments and processes in the bundle don't all have to be compatible with each other. In fact all the saved presets are stored in one `PresetBundle`. The `PresetBundle` is loaded on start up. The list of filaments and processes shown for a particular printer is a subset of `filaments` and `prints` `PresetCollection`s.
-## [`PresetCollection`](../../src/libslic3r/Preset.hpp)
+## [`PresetCollection`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp)
`PrinterPresetCollection` is a class derived from `PresetCollection`.
diff --git a/doc/developer-reference/plater-sidebar-tab-combobox.md b/doc/developer-reference/plater-sidebar-tab-combobox.md
index 91f7f58db3..1f01e7b5b6 100644
--- a/doc/developer-reference/plater-sidebar-tab-combobox.md
+++ b/doc/developer-reference/plater-sidebar-tab-combobox.md
@@ -10,13 +10,13 @@ Refers to the entire application. The whole view, file loading, project saving a
This is relating the the sidebar in the application window
-
+
## [`ComboBox`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Widgets/ComboBox.hpp)
The drop down menus where you can see and select presets
-
+
## [`Tab`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.hpp)
diff --git a/doc/developer-reference/slicing-hierarchy.md b/doc/developer-reference/slicing-hierarchy.md
index 65d28e11aa..f703c75f15 100644
--- a/doc/developer-reference/slicing-hierarchy.md
+++ b/doc/developer-reference/slicing-hierarchy.md
@@ -2,4 +2,43 @@
The Slicing logic is not the easiest to locate in the code base. Below is a flow diagram of function calls that are made after clicking the `Slice Plate` button in the UI. Most of the processing happens in different threads. Note the calls after `BackgroundSlicingProcess::start()`, but this is how you can find the slicing logic.
-
+```mermaid
+flowchart TD
+ A["Slice plate"] --> B["void Plater::priv::on_action_slice_plate(SimpleEvent&)"]
+ B --> C["void Plater::reslice()"]
+ C --> D["bool Plater::priv::restart_background_process(unsigned int state)"]
+ D --> E["bool BackgroundSlicingProcess::start()"]
+ E --> F["void BackgroundSlicingProcess::thread_proc_safe_seh_throw()"]
+ F --> G["unsigned long BackgroundSlicingProcess::thread_proc_safe_seh()"]
+ G --> H["void BackgroundSlicingProcess::thread_proc_safe()"]
+ H --> I["void BackgroundSlicingProcess::thread_proc()"]
+ I --> J["void BackgroundSlicingProcess::call_process_seh_throw(std::exception_ptr &ex)"]
+ J --> K["unsigned long BackgroundSlicingProcess::call_process_seh(std::exception_ptr &ex)"]
+ K --> L["void BackgroundSlicingProcess::call_process(std::exception_ptr &ex)"]
+ L --> M["void BackgroundSlicingProcess::process_fff()"]
+ M --> N["void Print::process(long long *time_cost_with_cache, bool use_cache)"]
+ N --> O["void PrintObject::make_perimeters()"]
+ O --> P["void PrintObject::slice()"]
+
+ %% Labels for libraries
+ subgraph G1 [libSlic3r_gui]
+ B
+ C
+ D
+ E
+ F
+ G
+ H
+ I
+ J
+ K
+ L
+ M
+ end
+
+ subgraph G2 [libSlic3r]
+ N
+ O
+ P
+ end
+```
\ No newline at end of file
diff --git a/doc/fill-patterns.md b/doc/fill-patterns.md
new file mode 100644
index 0000000000..73a832b784
--- /dev/null
+++ b/doc/fill-patterns.md
@@ -0,0 +1,91 @@
+# Infill Patterns
+WIP...
+
+## Concentric
+
+
+
+## Rectilinear
+
+
+
+## Grid
+
+
+
+## 2D Lattice
+
+
+
+## Line
+
+
+
+## Cubic
+
+
+
+## Triangles
+
+
+
+## Tri-hexagon
+
+
+
+## Gyroid
+
+
+
+## Honeycomb
+
+
+
+## Adaptive Cubic
+
+
+
+## Aligned Rectilinear
+
+
+
+## 3D Honeycomb
+
+
+
+## Hilbert Curve
+
+
+
+## Archimedean Chords
+
+
+
+## Octagram Spiral
+
+
+
+## Support Cubic
+
+
+
+## Lightning
+
+
+
+## Cross Hatch
+
+
+
+## Quartered Cubic
+
+
+
+> [!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
diff --git a/doc/images/Adaptative-Bed-Mesh/ABM-Machine-G-code.png b/doc/images/Adaptative-Bed-Mesh/ABM-Machine-G-code.png
new file mode 100644
index 0000000000..c0367a90c2
Binary files /dev/null and b/doc/images/Adaptative-Bed-Mesh/ABM-Machine-G-code.png differ
diff --git a/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png b/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png
new file mode 100644
index 0000000000..c2c691c0ae
Binary files /dev/null and b/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png differ
diff --git a/doc/images/Chamber/Chamber-Temperature-Control-Material.png b/doc/images/Chamber/Chamber-Temperature-Control-Material.png
new file mode 100644
index 0000000000..66559a86a3
Binary files /dev/null and b/doc/images/Chamber/Chamber-Temperature-Control-Material.png differ
diff --git a/doc/images/Chamber/Chamber-Temperature-Control-Printer.png b/doc/images/Chamber/Chamber-Temperature-Control-Printer.png
new file mode 100644
index 0000000000..1d7429c925
Binary files /dev/null and b/doc/images/Chamber/Chamber-Temperature-Control-Printer.png differ
diff --git a/doc/images/flow-calibration.gif b/doc/images/Flow-Rate/flow-calibration.gif
similarity index 100%
rename from doc/images/flow-calibration.gif
rename to doc/images/Flow-Rate/flow-calibration.gif
diff --git a/doc/images/flowcalibration_update_flowrate.png b/doc/images/Flow-Rate/flowcalibration_update_flowrate.png
similarity index 100%
rename from doc/images/flowcalibration_update_flowrate.png
rename to doc/images/Flow-Rate/flowcalibration_update_flowrate.png
diff --git a/doc/images/Flow-Rate/flowrate-0-5.jpg b/doc/images/Flow-Rate/flowrate-0-5.jpg
new file mode 100644
index 0000000000..364b67351a
Binary files /dev/null and b/doc/images/Flow-Rate/flowrate-0-5.jpg differ
diff --git a/doc/images/Flow-Rate/flowrate-6.jpg b/doc/images/Flow-Rate/flowrate-6.jpg
new file mode 100644
index 0000000000..d5f65683c9
Binary files /dev/null and b/doc/images/Flow-Rate/flowrate-6.jpg differ
diff --git a/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png b/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png
new file mode 100644
index 0000000000..b362a3d689
Binary files /dev/null and b/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png differ
diff --git a/doc/images/Flow-Rate/flowrate-pass1.jpg b/doc/images/Flow-Rate/flowrate-pass1.jpg
new file mode 100644
index 0000000000..8cbe342800
Binary files /dev/null and b/doc/images/Flow-Rate/flowrate-pass1.jpg differ
diff --git a/doc/images/Flow-Rate/flowrate-pass2.jpg b/doc/images/Flow-Rate/flowrate-pass2.jpg
new file mode 100644
index 0000000000..5d4197d143
Binary files /dev/null and b/doc/images/Flow-Rate/flowrate-pass2.jpg differ
diff --git a/doc/images/InputShaping/IS_damp_menu.png b/doc/images/InputShaping/IS_damp_menu.png
index 5f8fbeb59f..bb3674826d 100644
Binary files a/doc/images/InputShaping/IS_damp_menu.png and b/doc/images/InputShaping/IS_damp_menu.png differ
diff --git a/doc/images/InputShaping/IS_freq_menu.png b/doc/images/InputShaping/IS_freq_menu.png
index df51c0787f..e4764b50bf 100644
Binary files a/doc/images/InputShaping/IS_freq_menu.png and b/doc/images/InputShaping/IS_freq_menu.png differ
diff --git a/doc/images/JunctionDeviation/jd_first_menu.png b/doc/images/JunctionDeviation/jd_first_menu.png
index 263126143b..8888e401d7 100644
Binary files a/doc/images/JunctionDeviation/jd_first_menu.png and b/doc/images/JunctionDeviation/jd_first_menu.png differ
diff --git a/doc/images/JunctionDeviation/jd_second_menu.png b/doc/images/JunctionDeviation/jd_second_menu.png
index 016b2a4aaa..683b303f16 100644
Binary files a/doc/images/JunctionDeviation/jd_second_menu.png and b/doc/images/JunctionDeviation/jd_second_menu.png differ
diff --git a/doc/images/PreciseZ/PreciseZOff.png b/doc/images/PreciseZ/PreciseZOff.png
new file mode 100644
index 0000000000..43b5d56cc6
Binary files /dev/null and b/doc/images/PreciseZ/PreciseZOff.png differ
diff --git a/doc/images/PreciseZ/PreciseZOn.png b/doc/images/PreciseZ/PreciseZOn.png
new file mode 100644
index 0000000000..861aec011c
Binary files /dev/null and b/doc/images/PreciseZ/PreciseZOn.png differ
diff --git a/doc/images/stl transformation/simplify-menu.png b/doc/images/STL-Transformation/simplify-menu.png
similarity index 100%
rename from doc/images/stl transformation/simplify-menu.png
rename to doc/images/STL-Transformation/simplify-menu.png
diff --git a/doc/images/stl transformation/stl-transformation-enable.png b/doc/images/STL-Transformation/stl-transformation-enable.png
similarity index 100%
rename from doc/images/stl transformation/stl-transformation-enable.png
rename to doc/images/STL-Transformation/stl-transformation-enable.png
diff --git a/doc/images/stl transformation/stl-transformation-params.png b/doc/images/STL-Transformation/stl-transformation-params.png
similarity index 100%
rename from doc/images/stl transformation/stl-transformation-params.png
rename to doc/images/STL-Transformation/stl-transformation-params.png
diff --git a/doc/images/stl transformation/stl-transformation-smooth-rough.png b/doc/images/STL-Transformation/stl-transformation-smooth-rough.png
similarity index 100%
rename from doc/images/stl transformation/stl-transformation-smooth-rough.png
rename to doc/images/STL-Transformation/stl-transformation-smooth-rough.png
diff --git a/doc/images/stl transformation/stl-transformation-split.png b/doc/images/STL-Transformation/stl-transformation-split.png
similarity index 100%
rename from doc/images/stl transformation/stl-transformation-split.png
rename to doc/images/STL-Transformation/stl-transformation-split.png
diff --git a/doc/images/stl transformation/stl-transformation.png b/doc/images/STL-Transformation/stl-transformation.png
similarity index 100%
rename from doc/images/stl transformation/stl-transformation.png
rename to doc/images/STL-Transformation/stl-transformation.png
diff --git a/doc/images/Temp-calib/temp-tower.jpg b/doc/images/Temp-calib/temp-tower.jpg
new file mode 100644
index 0000000000..5394d25420
Binary files /dev/null and b/doc/images/Temp-calib/temp-tower.jpg differ
diff --git a/doc/images/temp_tower_test.gif b/doc/images/Temp-calib/temp-tower_test.gif
similarity index 100%
rename from doc/images/temp_tower_test.gif
rename to doc/images/Temp-calib/temp-tower_test.gif
diff --git a/doc/images/Temp-calib/temp-tower_test_menu.png b/doc/images/Temp-calib/temp-tower_test_menu.png
new file mode 100644
index 0000000000..dfc074ebe9
Binary files /dev/null and b/doc/images/Temp-calib/temp-tower_test_menu.png differ
diff --git a/doc/images/activate_chamber_heater.png b/doc/images/activate_chamber_heater.png
deleted file mode 100644
index a482ede1bf..0000000000
Binary files a/doc/images/activate_chamber_heater.png and /dev/null differ
diff --git a/doc/images/calibration.png b/doc/images/calibration.png
index 2823664ebd..65632b2889 100644
Binary files a/doc/images/calibration.png and b/doc/images/calibration.png differ
diff --git a/doc/images/combobox.png b/doc/images/combobox.png
index 0b720e6622..ef2832cc9e 100644
Binary files a/doc/images/combobox.png and b/doc/images/combobox.png differ
diff --git a/doc/images/filament-preset.png b/doc/images/filament-preset.png
index 7ad4c1c52e..0aa6030adb 100644
Binary files a/doc/images/filament-preset.png and b/doc/images/filament-preset.png differ
diff --git a/doc/images/fill/infill-iso-2d-lattice.png b/doc/images/fill/infill-iso-2d-lattice.png
new file mode 100644
index 0000000000..12e0e83496
Binary files /dev/null and b/doc/images/fill/infill-iso-2d-lattice.png differ
diff --git a/doc/images/fill/infill-iso-3d-honeycomb.png b/doc/images/fill/infill-iso-3d-honeycomb.png
new file mode 100644
index 0000000000..67eb5e0d77
Binary files /dev/null and b/doc/images/fill/infill-iso-3d-honeycomb.png differ
diff --git a/doc/images/fill/infill-iso-adaptative-cubic.png b/doc/images/fill/infill-iso-adaptative-cubic.png
new file mode 100644
index 0000000000..4beb64c377
Binary files /dev/null and b/doc/images/fill/infill-iso-adaptative-cubic.png differ
diff --git a/doc/images/fill/infill-iso-aligned-rectilinear.png b/doc/images/fill/infill-iso-aligned-rectilinear.png
new file mode 100644
index 0000000000..e337e57353
Binary files /dev/null and b/doc/images/fill/infill-iso-aligned-rectilinear.png differ
diff --git a/doc/images/fill/infill-iso-archimedean-chords.png b/doc/images/fill/infill-iso-archimedean-chords.png
new file mode 100644
index 0000000000..6d189394dc
Binary files /dev/null and b/doc/images/fill/infill-iso-archimedean-chords.png differ
diff --git a/doc/images/fill/infill-iso-concentric.png b/doc/images/fill/infill-iso-concentric.png
new file mode 100644
index 0000000000..6886c1f7fb
Binary files /dev/null and b/doc/images/fill/infill-iso-concentric.png differ
diff --git a/doc/images/fill/infill-iso-cross-hatch.png b/doc/images/fill/infill-iso-cross-hatch.png
new file mode 100644
index 0000000000..218f2dd3e9
Binary files /dev/null and b/doc/images/fill/infill-iso-cross-hatch.png differ
diff --git a/doc/images/fill/infill-iso-cubic.png b/doc/images/fill/infill-iso-cubic.png
new file mode 100644
index 0000000000..f0b834f36b
Binary files /dev/null and b/doc/images/fill/infill-iso-cubic.png differ
diff --git a/doc/images/fill/infill-iso-grid.png b/doc/images/fill/infill-iso-grid.png
new file mode 100644
index 0000000000..bcb7757209
Binary files /dev/null and b/doc/images/fill/infill-iso-grid.png differ
diff --git a/doc/images/fill/infill-iso-gyroid.png b/doc/images/fill/infill-iso-gyroid.png
new file mode 100644
index 0000000000..601abac68a
Binary files /dev/null and b/doc/images/fill/infill-iso-gyroid.png differ
diff --git a/doc/images/fill/infill-iso-hilbert-curve.png b/doc/images/fill/infill-iso-hilbert-curve.png
new file mode 100644
index 0000000000..ffee09e220
Binary files /dev/null and b/doc/images/fill/infill-iso-hilbert-curve.png differ
diff --git a/doc/images/fill/infill-iso-honeycomb.png b/doc/images/fill/infill-iso-honeycomb.png
new file mode 100644
index 0000000000..e36b8c6002
Binary files /dev/null and b/doc/images/fill/infill-iso-honeycomb.png differ
diff --git a/doc/images/fill/infill-iso-lightning.png b/doc/images/fill/infill-iso-lightning.png
new file mode 100644
index 0000000000..7b40354b33
Binary files /dev/null and b/doc/images/fill/infill-iso-lightning.png differ
diff --git a/doc/images/fill/infill-iso-line.png b/doc/images/fill/infill-iso-line.png
new file mode 100644
index 0000000000..5ea5179eb4
Binary files /dev/null and b/doc/images/fill/infill-iso-line.png differ
diff --git a/doc/images/fill/infill-iso-octagram-spiral.png b/doc/images/fill/infill-iso-octagram-spiral.png
new file mode 100644
index 0000000000..32c185aa75
Binary files /dev/null and b/doc/images/fill/infill-iso-octagram-spiral.png differ
diff --git a/doc/images/fill/infill-iso-quarter-cubic.png b/doc/images/fill/infill-iso-quarter-cubic.png
new file mode 100644
index 0000000000..499406de54
Binary files /dev/null and b/doc/images/fill/infill-iso-quarter-cubic.png differ
diff --git a/doc/images/fill/infill-iso-rectilinear.png b/doc/images/fill/infill-iso-rectilinear.png
new file mode 100644
index 0000000000..41950f3b2a
Binary files /dev/null and b/doc/images/fill/infill-iso-rectilinear.png differ
diff --git a/doc/images/fill/infill-iso-support-cubic.png b/doc/images/fill/infill-iso-support-cubic.png
new file mode 100644
index 0000000000..c09a3c599a
Binary files /dev/null and b/doc/images/fill/infill-iso-support-cubic.png differ
diff --git a/doc/images/fill/infill-iso-tri-hexagon.png b/doc/images/fill/infill-iso-tri-hexagon.png
new file mode 100644
index 0000000000..4ac5baf9eb
Binary files /dev/null and b/doc/images/fill/infill-iso-tri-hexagon.png differ
diff --git a/doc/images/fill/infill-iso-triangles.png b/doc/images/fill/infill-iso-triangles.png
new file mode 100644
index 0000000000..005194feed
Binary files /dev/null and b/doc/images/fill/infill-iso-triangles.png differ
diff --git a/doc/images/fill/infill-top-2d-lacttice.png b/doc/images/fill/infill-top-2d-lacttice.png
new file mode 100644
index 0000000000..519d48083a
Binary files /dev/null and b/doc/images/fill/infill-top-2d-lacttice.png differ
diff --git a/doc/images/fill/infill-top-3d-honeycomb.png b/doc/images/fill/infill-top-3d-honeycomb.png
new file mode 100644
index 0000000000..1012797422
Binary files /dev/null and b/doc/images/fill/infill-top-3d-honeycomb.png differ
diff --git a/doc/images/fill/infill-top-adaptative-cubic.png b/doc/images/fill/infill-top-adaptative-cubic.png
new file mode 100644
index 0000000000..be4aa713fd
Binary files /dev/null and b/doc/images/fill/infill-top-adaptative-cubic.png differ
diff --git a/doc/images/fill/infill-top-aligned-rectilinear.png b/doc/images/fill/infill-top-aligned-rectilinear.png
new file mode 100644
index 0000000000..aef72519bc
Binary files /dev/null and b/doc/images/fill/infill-top-aligned-rectilinear.png differ
diff --git a/doc/images/fill/infill-top-archimedean-chords.png b/doc/images/fill/infill-top-archimedean-chords.png
new file mode 100644
index 0000000000..a9c1fd1d33
Binary files /dev/null and b/doc/images/fill/infill-top-archimedean-chords.png differ
diff --git a/doc/images/fill/infill-top-concentric.png b/doc/images/fill/infill-top-concentric.png
new file mode 100644
index 0000000000..3771afb438
Binary files /dev/null and b/doc/images/fill/infill-top-concentric.png differ
diff --git a/doc/images/fill/infill-top-cross-hatch.png b/doc/images/fill/infill-top-cross-hatch.png
new file mode 100644
index 0000000000..96b95e2f79
Binary files /dev/null and b/doc/images/fill/infill-top-cross-hatch.png differ
diff --git a/doc/images/fill/infill-top-cubic.png b/doc/images/fill/infill-top-cubic.png
new file mode 100644
index 0000000000..08f11ca01c
Binary files /dev/null and b/doc/images/fill/infill-top-cubic.png differ
diff --git a/doc/images/fill/infill-top-grid.png b/doc/images/fill/infill-top-grid.png
new file mode 100644
index 0000000000..b6b3460191
Binary files /dev/null and b/doc/images/fill/infill-top-grid.png differ
diff --git a/doc/images/fill/infill-top-gyroid.png b/doc/images/fill/infill-top-gyroid.png
new file mode 100644
index 0000000000..211a697767
Binary files /dev/null and b/doc/images/fill/infill-top-gyroid.png differ
diff --git a/doc/images/fill/infill-top-hilbert-curve.png b/doc/images/fill/infill-top-hilbert-curve.png
new file mode 100644
index 0000000000..86bcd58d45
Binary files /dev/null and b/doc/images/fill/infill-top-hilbert-curve.png differ
diff --git a/doc/images/fill/infill-top-honeycomb.png b/doc/images/fill/infill-top-honeycomb.png
new file mode 100644
index 0000000000..402d29b8f7
Binary files /dev/null and b/doc/images/fill/infill-top-honeycomb.png differ
diff --git a/doc/images/fill/infill-top-lightning.png b/doc/images/fill/infill-top-lightning.png
new file mode 100644
index 0000000000..e7c4a5a33d
Binary files /dev/null and b/doc/images/fill/infill-top-lightning.png differ
diff --git a/doc/images/fill/infill-top-line.png b/doc/images/fill/infill-top-line.png
new file mode 100644
index 0000000000..3aeaa82e78
Binary files /dev/null and b/doc/images/fill/infill-top-line.png differ
diff --git a/doc/images/fill/infill-top-octagram-spiral.png b/doc/images/fill/infill-top-octagram-spiral.png
new file mode 100644
index 0000000000..d384b213a6
Binary files /dev/null and b/doc/images/fill/infill-top-octagram-spiral.png differ
diff --git a/doc/images/fill/infill-top-quartered-cubic.png b/doc/images/fill/infill-top-quartered-cubic.png
new file mode 100644
index 0000000000..4d2fe6e673
Binary files /dev/null and b/doc/images/fill/infill-top-quartered-cubic.png differ
diff --git a/doc/images/fill/infill-top-rectilinear.png b/doc/images/fill/infill-top-rectilinear.png
new file mode 100644
index 0000000000..a77ce1343e
Binary files /dev/null and b/doc/images/fill/infill-top-rectilinear.png differ
diff --git a/doc/images/fill/infill-top-support-cubic.png b/doc/images/fill/infill-top-support-cubic.png
new file mode 100644
index 0000000000..8dfe1bf079
Binary files /dev/null and b/doc/images/fill/infill-top-support-cubic.png differ
diff --git a/doc/images/fill/infill-top-tri-hexagon.png b/doc/images/fill/infill-top-tri-hexagon.png
new file mode 100644
index 0000000000..43ad5b8675
Binary files /dev/null and b/doc/images/fill/infill-top-tri-hexagon.png differ
diff --git a/doc/images/fill/infill-top-triangles.png b/doc/images/fill/infill-top-triangles.png
new file mode 100644
index 0000000000..196758829b
Binary files /dev/null and b/doc/images/fill/infill-top-triangles.png differ
diff --git a/doc/images/full-sidebar.png b/doc/images/full-sidebar.png
index 316fd2e95f..2ee3f86cb1 100644
Binary files a/doc/images/full-sidebar.png and b/doc/images/full-sidebar.png differ
diff --git a/doc/images/pa/apa-expected-results.jpg b/doc/images/pa/apa-expected-results.jpg
new file mode 100644
index 0000000000..cc2a669a34
Binary files /dev/null and b/doc/images/pa/apa-expected-results.jpg differ
diff --git a/doc/images/pa/apa-expected-seam.jpg b/doc/images/pa/apa-expected-seam.jpg
new file mode 100644
index 0000000000..f16a522621
Binary files /dev/null and b/doc/images/pa/apa-expected-seam.jpg differ
diff --git a/doc/images/pa/apa-expected-solid-infill.jpg b/doc/images/pa/apa-expected-solid-infill.jpg
new file mode 100644
index 0000000000..e74a049f7d
Binary files /dev/null and b/doc/images/pa/apa-expected-solid-infill.jpg differ
diff --git a/doc/images/pa/apa-identify-optimal.jpg b/doc/images/pa/apa-identify-optimal.jpg
new file mode 100644
index 0000000000..29ccecf190
Binary files /dev/null and b/doc/images/pa/apa-identify-optimal.jpg differ
diff --git a/doc/images/pa/apa-identify-too-high.jpg b/doc/images/pa/apa-identify-too-high.jpg
new file mode 100644
index 0000000000..66a1ee9db2
Binary files /dev/null and b/doc/images/pa/apa-identify-too-high.jpg differ
diff --git a/doc/images/pa/apa-identify-too-low.jpg b/doc/images/pa/apa-identify-too-low.jpg
new file mode 100644
index 0000000000..0c7e720e91
Binary files /dev/null and b/doc/images/pa/apa-identify-too-low.jpg differ
diff --git a/doc/images/pa/apa-material-config.png b/doc/images/pa/apa-material-config.png
new file mode 100644
index 0000000000..2dfcb894e7
Binary files /dev/null and b/doc/images/pa/apa-material-config.png differ
diff --git a/doc/images/pa/apa-profile.png b/doc/images/pa/apa-profile.png
new file mode 100644
index 0000000000..a150316fb2
Binary files /dev/null and b/doc/images/pa/apa-profile.png differ
diff --git a/doc/images/pa/apa-setup-result-acceleration-jerk.png b/doc/images/pa/apa-setup-result-acceleration-jerk.png
new file mode 100644
index 0000000000..659d2dbd69
Binary files /dev/null and b/doc/images/pa/apa-setup-result-acceleration-jerk.png differ
diff --git a/doc/images/pa/apa-setup-result-speed.png b/doc/images/pa/apa-setup-result-speed.png
new file mode 100644
index 0000000000..4117c1337c
Binary files /dev/null and b/doc/images/pa/apa-setup-result-speed.png differ
diff --git a/doc/images/pa/apa-test.png b/doc/images/pa/apa-test.png
new file mode 100644
index 0000000000..5e5cf76dc6
Binary files /dev/null and b/doc/images/pa/apa-test.png differ
diff --git a/doc/images/pa/apa-test210.jpg b/doc/images/pa/apa-test210.jpg
new file mode 100644
index 0000000000..892c338c9d
Binary files /dev/null and b/doc/images/pa/apa-test210.jpg differ
diff --git a/doc/images/pa/apa-unexpected-solid-infill.jpg b/doc/images/pa/apa-unexpected-solid-infill.jpg
new file mode 100644
index 0000000000..a9ce880394
Binary files /dev/null and b/doc/images/pa/apa-unexpected-solid-infill.jpg differ
diff --git a/doc/images/pa/pa-line-0-016.jpg b/doc/images/pa/pa-line-0-016.jpg
new file mode 100644
index 0000000000..0b3f511838
Binary files /dev/null and b/doc/images/pa/pa-line-0-016.jpg differ
diff --git a/doc/images/pa/pa-line.gif b/doc/images/pa/pa-line.gif
new file mode 100644
index 0000000000..aace86d431
Binary files /dev/null and b/doc/images/pa/pa-line.gif differ
diff --git a/doc/images/pa/pa-lines.png b/doc/images/pa/pa-lines.png
new file mode 100644
index 0000000000..23c1a7a49f
Binary files /dev/null and b/doc/images/pa/pa-lines.png differ
diff --git a/doc/images/pa/pa-pattern-batch-objects.png b/doc/images/pa/pa-pattern-batch-objects.png
index aed9eab40f..d5d924d9e9 100644
Binary files a/doc/images/pa/pa-pattern-batch-objects.png and b/doc/images/pa/pa-pattern-batch-objects.png differ
diff --git a/doc/images/pa/pa-pattern-batch.png b/doc/images/pa/pa-pattern-batch.png
index 8a8fe6c18f..bdacef279b 100644
Binary files a/doc/images/pa/pa-pattern-batch.png and b/doc/images/pa/pa-pattern-batch.png differ
diff --git a/doc/images/pa/pa-pattern-general.png b/doc/images/pa/pa-pattern-general.png
new file mode 100644
index 0000000000..23c0141f55
Binary files /dev/null and b/doc/images/pa/pa-pattern-general.png differ
diff --git a/doc/images/pa/pa-pattern-single.png b/doc/images/pa/pa-pattern-single.png
index 9c45170281..e84e85c3b3 100644
Binary files a/doc/images/pa/pa-pattern-single.png and b/doc/images/pa/pa-pattern-single.png differ
diff --git a/doc/images/pa/pa-tower-measure.jpg b/doc/images/pa/pa-tower-measure.jpg
new file mode 100644
index 0000000000..d1fd3c49bc
Binary files /dev/null and b/doc/images/pa/pa-tower-measure.jpg differ
diff --git a/doc/images/pa/pa-tower.jpg b/doc/images/pa/pa-tower.jpg
new file mode 100644
index 0000000000..0a4c5b0edc
Binary files /dev/null and b/doc/images/pa/pa-tower.jpg differ
diff --git a/doc/images/printer-preset.png b/doc/images/printer-preset.png
index d4d73718a1..fc0d567c94 100644
Binary files a/doc/images/printer-preset.png and b/doc/images/printer-preset.png differ
diff --git a/doc/images/process-preset.png b/doc/images/process-preset.png
index 2a2fc53db3..02f8f3a7fd 100644
Binary files a/doc/images/process-preset.png and b/doc/images/process-preset.png differ
diff --git a/doc/images/retraction_test.gif b/doc/images/retraction/retraction_test.gif
similarity index 100%
rename from doc/images/retraction_test.gif
rename to doc/images/retraction/retraction_test.gif
diff --git a/doc/images/retraction/retraction_test_menu.png b/doc/images/retraction/retraction_test_menu.png
new file mode 100644
index 0000000000..dd2940de72
Binary files /dev/null and b/doc/images/retraction/retraction_test_menu.png differ
diff --git a/doc/images/retraction_test_print.jpg b/doc/images/retraction/retraction_test_print.jpg
similarity index 100%
rename from doc/images/retraction_test_print.jpg
rename to doc/images/retraction/retraction_test_print.jpg
diff --git a/doc/images/retraction_test_dlg.png b/doc/images/retraction_test_dlg.png
deleted file mode 100644
index 85dcfdd2c1..0000000000
Binary files a/doc/images/retraction_test_dlg.png and /dev/null differ
diff --git a/doc/images/seam/seam-aligned.png b/doc/images/seam/seam-aligned.png
new file mode 100644
index 0000000000..824950f2dd
Binary files /dev/null and b/doc/images/seam/seam-aligned.png differ
diff --git a/doc/images/seam/seam-back.png b/doc/images/seam/seam-back.png
new file mode 100644
index 0000000000..7ff54e0551
Binary files /dev/null and b/doc/images/seam/seam-back.png differ
diff --git a/doc/images/seam/seam-gap.png b/doc/images/seam/seam-gap.png
new file mode 100644
index 0000000000..fcd8a631bf
Binary files /dev/null and b/doc/images/seam/seam-gap.png differ
diff --git a/doc/images/seam/seam-nearest.png b/doc/images/seam/seam-nearest.png
new file mode 100644
index 0000000000..7691edc5c4
Binary files /dev/null and b/doc/images/seam/seam-nearest.png differ
diff --git a/doc/images/seam/seam-quality.jpg b/doc/images/seam/seam-quality.jpg
new file mode 100644
index 0000000000..2e3d76195c
Binary files /dev/null and b/doc/images/seam/seam-quality.jpg differ
diff --git a/doc/images/seam/seam-random.png b/doc/images/seam/seam-random.png
new file mode 100644
index 0000000000..daba4a2c72
Binary files /dev/null and b/doc/images/seam/seam-random.png differ
diff --git a/doc/images/seam/seam-wipe-on-loop.png b/doc/images/seam/seam-wipe-on-loop.png
new file mode 100644
index 0000000000..6b10c051fb
Binary files /dev/null and b/doc/images/seam/seam-wipe-on-loop.png differ
diff --git a/doc/images/seam/seam-wipe-on-loops-options.png b/doc/images/seam/seam-wipe-on-loops-options.png
new file mode 100644
index 0000000000..3d6c900025
Binary files /dev/null and b/doc/images/seam/seam-wipe-on-loops-options.png differ
diff --git a/doc/images/slicing_call_heirarchy.svg b/doc/images/slicing_call_heirarchy.svg
deleted file mode 100644
index 2a2ffbf847..0000000000
--- a/doc/images/slicing_call_heirarchy.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/doc/images/tab-popup.png b/doc/images/tab-popup.png
index e31f47dc88..8a6f032887 100644
Binary files a/doc/images/tab-popup.png and b/doc/images/tab-popup.png differ
diff --git a/doc/pellet-flow-coefficient.md b/doc/pellet-flow-coefficient.md
index 0f318b404f..a3be0bda40 100644
--- a/doc/pellet-flow-coefficient.md
+++ b/doc/pellet-flow-coefficient.md
@@ -24,4 +24,4 @@ does already with very minor adjustments.
sqrt just makes the relationship between flow_coefficient and volume linear.
higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
-All other calculations remain the same for slicing.
\ No newline at end of file
+All other calculations remain the same for slicing.
diff --git a/doc/precise-z-height.md b/doc/precise-z-height.md
index f013a5d161..fa862bf922 100644
--- a/doc/precise-z-height.md
+++ b/doc/precise-z-height.md
@@ -6,4 +6,10 @@ For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm wo
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**
+
+ 
+
+- **Precise Z Height On**
+
+ 
diff --git a/doc/print_settings/calibration/Calibration.md b/doc/print_settings/calibration/Calibration.md
index 0f25e2ec6d..5c4e6820cd 100644
--- a/doc/print_settings/calibration/Calibration.md
+++ b/doc/print_settings/calibration/Calibration.md
@@ -13,44 +13,44 @@ To access the calibration features, you can find them in the **Calibration** sec
The recommended order for calibration is as follows:
-1. **[Temperature](temp-calib.md)**: Start by calibrating the temperature of the nozzle and the bed. This is crucial as it affects the viscosity of the filament, which in turn influences how well it flows through the nozzle and adheres to the print bed.
+1. **[Temperature](temp-calib):** Start by calibrating the temperature of the nozzle and the bed. This is crucial as it affects the viscosity of the filament, which in turn influences how well it flows through the nozzle and adheres to the print bed.
-
+
-2. **[Flow](flow-rate-calib.md)**: Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion.
+2. **[Flow](flow-rate-calib):** Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion.
-
+
-3. **[Pressure Advance](pressure-advance-calib.md)**: Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
+1. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
- - **[Adaptative Pressure Advance](adaptive-pressure-advance-calib.md)**: This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries.
+ - **[Adaptative Pressure Advance](adaptive-pressure-advance-calib):** This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries.
-
+
-4. **[Retraction](retraction-calib.md)**: Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and
+2. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and
-
+
-5. **[Tolerance](tolerance-calib.md)**: Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications.
+3. **[Tolerance](tolerance-calib):** Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications.
-6. **[Max Volumetric Speed](volumetric-speed-calib.md)**: Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion.
+4. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion.
-7. **[Cornering](cornering-calib.md)**: Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.
+5. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.
-8. **[Input Shaping](input-shaping-calib.md)**: This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer.
+6. **[Input Shaping](input-shaping-calib):** This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer.
### VFA
Vertical Fine Artifacts (VFA) are small artifacts that can occur on the surface of a 3D print, particularly in areas where there are sharp corners or changes in direction. These artifacts can be caused by a variety of factors, including mechanical vibrations, resonance, and other factors that can affect the quality of the print.
-Because of the nature of these artifacts the methods to reduce them can be mechanical such as changing motors, belts and pulleys or with advanced calibrations such as Jerk/[Juction Deviation](#junction-deviation) corrections or [Input Shaping](#input-shaping).
+Because of the nature of these artifacts the methods to reduce them can be mechanical such as changing motors, belts and pulleys or with advanced calibrations such as Jerk/[Junction Deviation](junction-deviation) corrections or [Input Shaping](input-shaping).
---
@@ -62,4 +62,4 @@ _Credits:_
- _The temp tower model is remixed from [Smart compact temperature calibration tower](https://www.thingiverse.com/thing:2729076)._
- _The max flowrate test was inspired by Stefan (CNC Kitchen), and the model used in the test is a remix of his [Extrusion Test Structure](https://www.printables.com/model/342075-extrusion-test-structure)._
- _ZV Input Shaping is inspired by [Marlin Input Shaping](https://marlinfw.org/docs/features/input_shaping.html) and [Ringing Tower 3D STL](https://marlinfw.org/assets/stl/ringing_tower.stl)._
-- _ChatGPT_ ;)
\ No newline at end of file
+- _ChatGPT_ ;)
diff --git a/doc/print_settings/calibration/adaptive-pressure-advance-calib.md b/doc/print_settings/calibration/adaptive-pressure-advance-calib.md
index 1bf5b7d539..aa5add89e1 100644
--- a/doc/print_settings/calibration/adaptive-pressure-advance-calib.md
+++ b/doc/print_settings/calibration/adaptive-pressure-advance-calib.md
@@ -1,6 +1,6 @@
# Adaptive Pressure Advance
-This feature aims to dynamically adjust the printer’s pressure advance to better match the conditions the toolhead is facing during a print. Specifically, to more closely align to the ideal values as flow rate, acceleration, and bridges are encountered.
+This feature aims to dynamically adjust the printer’s pressure advance to better match the conditions the toolhead is facing during a print. Specifically, to more closely align to the ideal values as flow rate, acceleration, and bridges are encountered.
This wiki page aims to explain how this feature works, the prerequisites required to get the most out of it as well as how to calibrate it and set it up.
## Settings Overview
@@ -13,7 +13,7 @@ This feature introduces the below options under the filament settings:
4. **Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below.
5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but it’s the ultimate backstop).
-
+
## Pre-Requisites
@@ -45,14 +45,14 @@ Finally, if during calibration you notice that there is little to no variance be
### Expected results:
-With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
-
-In addition, seams should appear smooth with no bulging or under extrusion.
-
-Solid infill should have no gaps, pinholes, or separation from the perimeters.
-
+With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
+
+In addition, seams should appear smooth with no bulging or under extrusion.
+
+Solid infill should have no gaps, pinholes, or separation from the perimeters.
+
Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
-
+
## How to calibrate the adaptive pressure advance model
@@ -84,7 +84,7 @@ Similarly, if the maximum value recommended is 12k, run PA tests as below:
1. **Accelerations:** 1k, 2k, 4k, 8k, 12k
2. **Print speeds:** 50mm/sec, 100mm/sec, 150mm/sec, 200mm/sec.
-So, at worst case you will need to run 5x4 = 20 PA tests if your printer acceleration is on the upper end! In essence, you want enough granularity of data points to create a meaningful model while also not overdoing it with the number of tests. So, doubling the speed and acceleration is a good compromise to arrive at the optimal number of tests.
+So, at worst case you will need to run 5x4 = 20 PA tests if your printer acceleration is on the upper end! In essence, you want enough granularity of data points to create a meaningful model while also not overdoing it with the number of tests. So, doubling the speed and acceleration is a good compromise to arrive at the optimal number of tests.
For this example, let’s assume that the baseline number of tests is adequate for your printer:
1. **Accelerations:** 1k, 2k, 4k
@@ -113,14 +113,15 @@ We, therefore, need to run 12 PA tests as below:
Test parameters needed to build adaptive PA table are printed on the test sample:
-
+
Test sample above was done with acceleration 12000 mm/s² and flow rate 27.13 mm³/s
#### OrcaSlicer 2.1.0 and older.
As mentioned earlier, **the print speed is used as a proxy to vary the extrusion flow rate**. Once your PA test is set up, change the gcode preview to “flow” and move the horizontal slider over one of the herringbone patterns and take note of the flow rate for different speeds.
-
+
+
### Running the tests
@@ -132,13 +133,13 @@ It is recommended that the PA step is set to a small value, to allow you to make
**If the test is too big to fit on the build plate, increase your starting PA value or the PA step value accordingly until the test can fit.** If the lowest value becomes too high and there is no ideal PA present in the test, focus on increasing the PA step value to reduce the number of herringbones printed (hence the size of the print).
-
+
#### OrcaSlicer 2.3.0 and newer
PA pattern calibration configuration window have been changed to simplify test setup. Now all is needed is to fill list of accelerations and speeds into relevant fields of the calibration window:
-
+
Test patterns generated for each acceleration-speed pair and all parameters are set accordingly. No additional actions needed from user side. Just slice and print all plates generated.
@@ -148,19 +149,36 @@ Refer to [Calibration Guide](Calibration) for more details on batch mode calibra
Setup your PA test as usual from the calibration menu in Orca slicer. Once setup, your PA test should look like the below:
-
+
-
+
Now input your identified print speeds and accelerations in the fields above and run the PA tests.
-**IMPORTANT:** Make sure your acceleration values are all the same in all text boxes. Same for the print speed values and Jerk (XY) values. Make sure your Jerk value is set to the external perimeter jerk used in your print profiles.
+
+> [!IMPORTANT]
+> Make sure your acceleration values are all the same in all text boxes. Same for the print speed values and Jerk (XY) values. Make sure your Jerk value is set to the external perimeter jerk used in your print profiles.
#### Test results processing
Now run the tests and note the optimal PA value, the flow, and the acceleration. You should produce a table like this:
-
+| Speed | Flow | Acceleration | PA | Model values |
+|-------|-------|--------------|-------|----------------------|
+| 50 | 3.84 | 1000 | 0.036 | 0.036 , 3.84 , 1000 |
+| 100 | 7.68 | 1000 | 0.036 | 0.036 , 7.68 , 1000 |
+| 150 | 11.51 | 1000 | 0.036 | 0.036 , 11.51 , 1000 |
+| 200 | 15.35 | 1000 | 0.036 | 0.036 , 15.35 , 1000 |
+| | | | | |
+| 50 | 3.84 | 2000 | 0.036 | 0.036 , 3.84 , 2000 |
+| 100 | 7.68 | 2000 | 0.03 | 0.03 , 7.68 , 2000 |
+| 150 | 11.51 | 2000 | 0.029 | 0.029 , 11.51 , 2000 |
+| 200 | 15.35 | 2000 | 0.028 | 0.028 , 15.35 , 2000 |
+| | | | | |
+| 50 | 3.84 | 4000 | 0.032 | 0.032 , 3.84 , 4000 |
+| 100 | 7.68 | 4000 | 0.028 | 0.028 , 7.68 , 4000 |
+| 150 | 11.51 | 4000 | 0.026 | 0.026 , 11.51 , 4000 |
+| 200 | 15.35 | 4000 | 0.024 | 0.024 , 15.35 , 4000 |
Concatenate the PA value, the flow value, and the acceleration value into the final comma-separated sets to create the values entered in the model as shown above.
@@ -168,7 +186,7 @@ Concatenate the PA value, the flow value, and the acceleration value into the fi
Remember to paste the values in the adaptive pressure advance measurements text box as shown below, and save your filament profile.
-
+
### Tips
@@ -189,13 +207,10 @@ Higher acceleration and higher flow rate PA tests are easier to identify the opt
However, the lower the flow rate and accelerations are, the range of good values is much wider. Having examined the PA tests even under a microscope, what is evident, is that if you can’t distinguish a value as being evidently better than another (i.e. sharper corner with no gaps) with the naked eye, then both values are correct. In which case, if you can’t find any meaningful difference, simply use the optimal values from the higher flow rates.
- **Too high PA**
-
-
+
- **Too low PA**
-
-
+
- **Optimal PA**
-
-
+
diff --git a/doc/print_settings/calibration/cornering-calib.md b/doc/print_settings/calibration/cornering-calib.md
index 43c7b81ee3..3fb0c1e94d 100644
--- a/doc/print_settings/calibration/cornering-calib.md
+++ b/doc/print_settings/calibration/cornering-calib.md
@@ -57,4 +57,4 @@ The default value in Marlin is typically set to 0.08mm, which may be too high fo
2. Check Classic Jerk is disabled (commented).
```cpp
//#define CLASSIC_JERK
- ```
\ No newline at end of file
+ ```
diff --git a/doc/print_settings/calibration/flow-rate-calib.md b/doc/print_settings/calibration/flow-rate-calib.md
index b9400955dd..45f0be0054 100644
--- a/doc/print_settings/calibration/flow-rate-calib.md
+++ b/doc/print_settings/calibration/flow-rate-calib.md
@@ -3,14 +3,14 @@
The Flow Ratio determines how much filament is extruded and plays a key role in achieving high-quality prints. A properly calibrated flow ratio ensures consistent layer adhesion and accurate dimensions. If the flow ratio is too low, under-extrusion may occur, leading to gaps, weak layers, and poor structural integrity. On the other hand, a flow ratio that is too high can cause over-extrusion, resulting in excess material, rough surfaces, and dimensional inaccuracies.
> [!WARNING]
-> For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option.
-
-> 
+> **Bambulab Printers:** make sure you do not select the 'Flow calibration' option.
+> 
> [!IMPORTANT]
-> PASS 1 and PASS 2 follow the older flow ratio formula `FlowRatio_old*(100 + modifier)/100`. YOLO (Recommended) and YOLO (perfectist version) use a new system that is very simple `FlowRatio_old±modifier`.
+> PASS 1 and PASS 2 follow the older flow ratio formula `FlowRatio_old*(100 + modifier)/100`.
+> YOLO (Recommended) and YOLO (perfectist version) use a new system that is very simple `FlowRatio_old±modifier`.
-
+
Calibrating the flow rate involves a two-step process.
@@ -18,16 +18,19 @@ Calibrating the flow rate involves a two-step process.
2. Select `Pass 1` in the `Calibration` menu
3. A new project consisting of nine blocks will be created, each with a different flow rate modifier. Slice and print the project.
4. Examine the blocks and determine which one has the smoothest top surface.
- 
- 
+ 
+
+ 
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`.** Remember** to save the filament profile.
6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`.
7. Repeat steps 4. and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. **Remember** to save the filament profile.
-
-
-
+
+
+
+
+
> [!TIP]
-> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
\ No newline at end of file
+> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
diff --git a/doc/print_settings/calibration/input-shaping-calib.md b/doc/print_settings/calibration/input-shaping-calib.md
index 14051a0947..c2b6f8324c 100644
--- a/doc/print_settings/calibration/input-shaping-calib.md
+++ b/doc/print_settings/calibration/input-shaping-calib.md
@@ -17,9 +17,10 @@ Ussualy the recommended values modes are `MZV` or `EI` for Delta printers.
1. Acceleration high enough to trigger ringing (e.g., 2000 mm/s²).
2. Speed high enough to trigger ringing (e.g., 100 mm/s).
- > [!NOTE]
- > These settings depend on your printer's motion ability and the filament's max volumetric speed. If you can't reach speeds that cause ringing, try increasing the filament's max volumetric speed (avoid materials below 10 mm³/s).
+> [!NOTE]
+> These settings depend on your printer's motion ability and the filament's max volumetric speed. If you can't reach speeds that cause ringing, try increasing the filament's max volumetric speed (avoid materials below 10 mm³/s).
3. Jerk [Klipper Square Corner Velocity](https://www.klipper3d.org/Kinematics.html?h=square+corner+velocity#look-ahead) to 5 or a high value (e.g., 20).
+
2. In printer settigs:
1. Set the Shaper Type to `MZV` or `EI`.
```gcode
@@ -41,8 +42,8 @@ Ussualy the recommended values modes are `MZV` or `EI` for Delta printers.
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
- > [!Warning]
- > There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
+> [!WARNING]
+> There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
@@ -53,8 +54,8 @@ Ussualy the recommended values modes are `MZV` or `EI` for Delta printers.


- > [!Important]
- > Not all Resonance Compensation modes support damping.
+> [!IMPORTANT]
+> Not all Resonance Compensation modes support damping.
4. Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.
5. Save the settings
@@ -70,8 +71,10 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
1. In OrcaSlicer, set:
1. Acceleration high enough to trigger ringing (e.g., 2000 mm/s²).
2. Speed high enough to trigger ringing (e.g., 100 mm/s).
- > [!NOTE]
- > These settings depend on your printer's motion ability and the filament's max volumetric speed. If you can't reach speeds that cause ringing, try increasing the filament's max volumetric speed (avoid materials below 10 mm³/s).
+
+> [!NOTE]
+> These settings depend on your printer's motion ability and the filament's max volumetric speed. If you can't reach speeds that cause ringing, try increasing the filament's max volumetric speed (avoid materials below 10 mm³/s).
+
3. Jerk
1. If using [Classic Jerk](https://marlinfw.org/docs/configuration/configuration.html#jerk-) use a high value (e.g., 20).
2. If using [Junction Deviation](https://marlinfw.org/docs/features/junction_deviation.html) (new Marlin default mode) this test will use 0.25 (high enough to most printers).
@@ -87,8 +90,8 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value.
- > [!Warning]
- > There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
+> [!WARNING]
+> There is a chance you will need to set higher than 60Hz frequencies. Some printers with very rigid frames and excellent mechanics may exhibit frequencies exceeding 100Hz.
3. Print the Damping test setting your X and Y frequency to the value you found in the previous step.
@@ -122,4 +125,5 @@ ZV Input Shaping introduces an anti-vibration signal into the stepper motion for
### Fixed-Time Motion
-TODO This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information.
\ No newline at end of file
+WIP...
+This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information.
diff --git a/doc/print_settings/calibration/pressure-advance-calib.md b/doc/print_settings/calibration/pressure-advance-calib.md
index 78b2b63943..4b14ce7c4c 100644
--- a/doc/print_settings/calibration/pressure-advance-calib.md
+++ b/doc/print_settings/calibration/pressure-advance-calib.md
@@ -8,12 +8,12 @@ Orca Slicer includes three approaches for calibrating the pressure advance value
> [Adaptive Pressure Advance Guide](adaptive-pressure-advance-calib)
> [!WARNING]
-> For Marlin: Linear advance must be enabled in firmware (M900). **Not all printers have it enabled by default.**
+> **Marlin Printers:** Linear advance must be enabled in firmware (M900).
+> **Not all printers have it enabled by default.**
> [!WARNING]
-> For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.
->
-> 
+> **Bambulab Printers:** make sure you do not select the 'Flow calibration' option.
+> 
## Line method
@@ -23,13 +23,15 @@ Steps:
1. Select the printer, filament, and process you would like to use for the test.
2. Print the project and check the result. You can select the value of the most even line and update your PA value in the filament settings.
3. In this test, a PA value of `0.016` appears to be optimal.
- 
-
+ 
- 
+ 
+
+ 

+
## Pattern method
The pattern method is adapted from [Andrew Ellis' pattern method generator](https://ellis3dp.com/Pressure_Linear_Advance_Tool/), which was itself derived from the [Marlin pattern method](https://marlinfw.org/tools/lin_advance/k-factor.html) developed by [Sineos](https://github.com/Sineos/k-factorjs).
@@ -45,7 +47,7 @@ Test configuration window allow user to generate one or more tests in a single p
Once test generated, one or more small rectangular prisms could be found on the plate, one for each test case. This object serves a few purposes:
-1. The test pattern itself is added in as custom G-Code at each layer, same as you could do by hand actually. The rectangular prism gives us the layers in which to insert that G-Code. This also means that **you'll see the full test pattern when you move to the Preview pane**:
+1. The test pattern itself is added in as custom G-Code at each layer, same as you could do by hand actually. The rectangular prism gives us the layers in which to insert that G-Code. This also means that **you'll see the full test pattern when you move to the Preview pane:**

@@ -69,8 +71,8 @@ The PA value for this test will be increased by 0.002 for every 1 mm increase in
1. Select the printer, filament, and process you would like to use for the test.
2. Examine each corner of the print and mark the height that yields the best overall result.
3. I selected a height of 8 mm for this case, so the pressure advance value should be calculated as `PressureAdvanceStart+(PressureAdvanceStep x measured)` example: `0+(0.002 x 8) = 0.016`.
- 
- 
+ 
+ 
> [!TIP]
-> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
\ No newline at end of file
+> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
diff --git a/doc/print_settings/calibration/retraction-calib.md b/doc/print_settings/calibration/retraction-calib.md
index 75b8eb69ef..7ec32ac40f 100644
--- a/doc/print_settings/calibration/retraction-calib.md
+++ b/doc/print_settings/calibration/retraction-calib.md
@@ -4,17 +4,17 @@ Retraction is the process of pulling the filament back into the nozzle to preven
This test generates a retraction tower automatically. The retraction tower is a vertical structure with multiple notches, each printed at a different retraction length. After the print is complete, we can examine each section of the tower to determine the optimal retraction length for the filament. The optimal retraction length is the shortest one that produces the cleanest tower.
-
+
-
+
In the dialog, you can select the start and end retraction length, as well as the retraction length increment step. The default values are 0mm for the start retraction length, 2mm for the end retraction length, and 0.1mm for the step. These values are suitable for most direct drive extruders. However, for Bowden extruders, you may want to increase the start and end retraction lengths to 1mm and 6mm, respectively, and set the step to 0.2mm.
-
+
> [!NOTE]
> When testing filaments such as PLA or ABS that have minimal oozing, the retraction settings can be highly effective. You may find that the retraction tower appears clean right from the start. In such situations, setting the retraction length to 0.2mm - 0.4mm using Orca Slicer should suffice.
> On the other hand, if there is still a lot of stringing at the top of the tower, it is recommended to dry your filament and ensure that your nozzle is properly installed without any leaks.
> [!TIP]
-> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
\ No newline at end of file
+> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
diff --git a/doc/print_settings/calibration/temp-calib.md b/doc/print_settings/calibration/temp-calib.md
index 83f98200e4..084a0bd31b 100644
--- a/doc/print_settings/calibration/temp-calib.md
+++ b/doc/print_settings/calibration/temp-calib.md
@@ -7,11 +7,13 @@ There is no other calibration that can have such a big impact on the print quali
Nozzle temperature is one of the most important settings to calibrate for a successful print. The temperature of the nozzle affects the viscosity of the filament, which in turn affects how well it flows through the nozzle and adheres to the print bed. If the temperature is too low, the filament may not flow properly, leading to under-extrusion, poor layer adhesion and stringing. If the temperature is too high, the filament may degrade, over-extrude and produce stringing.
-
+
+
+
Temp tower is a straightforward test. The temp tower is a vertical tower with multiple blocks, each printed at a different temperature. Once the print is complete, we can examine each block of the tower and determine the optimal temperature for the filament. The optimal temperature is the one that produces the highest quality print with the least amount of issues, such as stringing, layer adhesion, warping (overhang), and bridging.
-
+
## Bed temperature
@@ -26,4 +28,4 @@ Chamber temperature can affect the print quality, especially for high-temperatur
See: [Chamber temperature printer settings](Chamber-temperature)
> [!NOTE]
-> Low temperature Filaments like PLA can clog the nozzle if the chamber temperature is too high.
\ No newline at end of file
+> Low temperature Filaments like PLA can clog the nozzle if the chamber temperature is too high.
diff --git a/doc/print_settings/calibration/tolerance-calib.md b/doc/print_settings/calibration/tolerance-calib.md
index 3cb440ea25..a96e71dc4f 100644
--- a/doc/print_settings/calibration/tolerance-calib.md
+++ b/doc/print_settings/calibration/tolerance-calib.md
@@ -28,4 +28,4 @@ You can check the tolerance using either an M6 Allen key or the included printed
Use calipers to measure both the holes and the inner tester. Based on your results, you can fine-tune the X-Y hole compensation and X-Y contour compensation settings. Repeat the process until you achieve the desired precision.

-
\ No newline at end of file
+
diff --git a/doc/print_settings/calibration/volumetric-speed-calib.md b/doc/print_settings/calibration/volumetric-speed-calib.md
index ec66ea811d..e904e3e50c 100644
--- a/doc/print_settings/calibration/volumetric-speed-calib.md
+++ b/doc/print_settings/calibration/volumetric-speed-calib.md
@@ -20,4 +20,4 @@ You can also return to OrcaSlicer in the "Preview" tab, make sure the color sche
> You may also choose to conservatively reduce the flow by 5-10% to ensure print quality.
> [!TIP]
-> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
\ No newline at end of file
+> @ItsDeidara has made a html to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant).
diff --git a/doc/print_settings/quality/quality_settings_layer_height.md b/doc/print_settings/quality/quality_settings_layer_height.md
index c645c71100..acdf4effdd 100644
--- a/doc/print_settings/quality/quality_settings_layer_height.md
+++ b/doc/print_settings/quality/quality_settings_layer_height.md
@@ -16,4 +16,4 @@ This setting controls how tall the first layer of the print will be. Typically,
### Tip:
-A thicker first layer is more forgiving to slight variations to the evenness of the build surface, resulting in a more uniform, visually, first layer. Set it to 0.25mm for a 0.4mm nozzle, for example, if your build surface is uneven or your printer has a slightly inconsistent z offset between print runs. However, as a rule of thumb, try not to exceed 65% of the nozzle width so as to not compromise bed adhesion too much.
\ No newline at end of file
+A thicker first layer is more forgiving to slight variations to the evenness of the build surface, resulting in a more uniform, visually, first layer. Set it to 0.25mm for a 0.4mm nozzle, for example, if your build surface is uneven or your printer has a slightly inconsistent z offset between print runs. However, as a rule of thumb, try not to exceed 65% of the nozzle width so as to not compromise bed adhesion too much.
diff --git a/doc/print_settings/quality/quality_settings_line_width.md b/doc/print_settings/quality/quality_settings_line_width.md
index 37d1d0c26d..9c50d9d8a2 100644
--- a/doc/print_settings/quality/quality_settings_line_width.md
+++ b/doc/print_settings/quality/quality_settings_line_width.md
@@ -2,21 +2,21 @@
These settings control how wide the extruded lines are.
-- **Default**: The default line width in mm or as a percentage of the nozzle size.
+- **Default:** The default line width in mm or as a percentage of the nozzle size.
-- **First Layer**: The line width of the first layer. Typically, this is wider than the rest of the print, to promote better bed adhesion. See tips below for why.
+- **First Layer:** The line width of the first layer. Typically, this is wider than the rest of the print, to promote better bed adhesion. See tips below for why.
-- **Outer Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s external wall perimeters.
+- **Outer Wall:** The line width in mm or as a percentage of the nozzle size used when printing the model’s external wall perimeters.
-- **Inner Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal wall perimeters.
+- **Inner Wall:** The line width in mm or as a percentage of the nozzle size used when printing the model’s internal wall perimeters.
-- **Top Surface**: The line width in mm or as a percentage of the nozzle size used when printing the model’s top surface.
+- **Top Surface:** The line width in mm or as a percentage of the nozzle size used when printing the model’s top surface.
-- **Sparse Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s sparse infill.
+- **Sparse Infill:** The line width in mm or as a percentage of the nozzle size used when printing the model’s sparse infill.
-- **Internal Solid Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal solid infill.
+- **Internal Solid Infill:** The line width in mm or as a percentage of the nozzle size used when printing the model’s internal solid infill.
-- **Support**: The line width in mm or as a percentage of the nozzle size used when printing the model’s support structures.
+- **Support:** The line width in mm or as a percentage of the nozzle size used when printing the model’s support structures.
## Tips:
@@ -40,4 +40,4 @@ These settings control how wide the extruded lines are.
10. **For supports, using 100% or less line width will make the supports weaker** by reducing their layer adhesion, making them easier to remove.
-11. **If your printer is limited mechanically, try to maintain the material flow as consistent as possible between critical features of your model**, to ease the load on the extruder having to adapt its flow between them. This is especially useful for printers that do not use pressure advance/linear advance and if your extruder is not as capable mechanically. You can do that by adjusting the line widths and speeds to reduce the variation between critical features (e.g., external and internal wall flow). For example, print them at the same speed and the same line width, or print the external perimeter slightly wider and slightly slower than the internal perimeter. Material flow can be visualized in the sliced model – flow drop down.
\ No newline at end of file
+11. **If your printer is limited mechanically, try to maintain the material flow as consistent as possible between critical features of your model**, to ease the load on the extruder having to adapt its flow between them. This is especially useful for printers that do not use pressure advance/linear advance and if your extruder is not as capable mechanically. You can do that by adjusting the line widths and speeds to reduce the variation between critical features (e.g., external and internal wall flow). For example, print them at the same speed and the same line width, or print the external perimeter slightly wider and slightly slower than the internal perimeter. Material flow can be visualized in the sliced model – flow drop down.
diff --git a/doc/print_settings/quality/quality_settings_seam.md b/doc/print_settings/quality/quality_settings_seam.md
index 3dc983aae7..605c1fdf79 100644
--- a/doc/print_settings/quality/quality_settings_seam.md
+++ b/doc/print_settings/quality/quality_settings_seam.md
@@ -2,28 +2,74 @@
Unless printed in spiral vase mode, every layer needs to begin somewhere and end somewhere. That start and end of the extrusion is what results in what visually looks like a seam on the perimeters. This section contains options to control the visual appearance of a seam.
-- **Seam Position**: Controls the placement of the seam.
+## Seam Position
- 1. **Aligned**: Will attempt to align the seam to a hidden internal facet of the model.
- 2. **Nearest**: Will place the seam at the nearest starting point compared to where the nozzle stopped printing in the previous layer.
- 3. **Back**: Will align the seam in a (mostly) straight line at the rear of the model.
- 4. **Random**: Will randomize the placement of the seam between layers.
+Controlling the position of seams can help improve the appearance and strength of the final print.
- Typically, aligned or back work the best, especially in combination with seam painting. However, as seams create weak points and slight surface "bulges" or "divots," random seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
+Typically, aligned or back work the best, especially in combination with seam painting. However, as seams create weak points and slight surface "bulges" or "divots", random seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
-- **Staggered Inner Seams**: As the seam location forms a weak point in the print (it's a discontinuity in the extrusion process after all!), staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
+### Aligned
-- **Seam Gap**: Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam. A larger gap will reduce the bulging seen at the seam. A smaller gap reduces the visual appearance of a seam. For a well-tuned printer with pressure advance, a value of 0-15% is typically optimal.
+Will attempt to align the seam to a hidden internal facet of the model.
-- **Scarf Seam**: Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
+
-- **Role-Based Wipe Speed**: Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model. It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
+### Nearest
-- **Wipe Speed**: If role-based wipe speed is disabled, set this field to the absolute wipe speed or as a percentage over the travel speed.
+Will place the seam at the nearest starting point compared to where the nozzle stopped printing in the previous layer.
+This is optimized for speed, low travel, and acceptable strength.
-- **Wipe on Loops**: When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
+
-- **Wipe Before External Perimeters**: To minimize the visibility of potential over-extrusion at the start of an external perimeter, the de-retraction move is performed slightly on the inside of the model and, hence, the start of the external perimeter. That way, any potential over-extrusion is hidden from the outside surface.
+### Back
+
+This option places the seam on the back side (Min Y point in that layer) of the object, away from the view. It is useful for objects that will be displayed with a specific orientation.
+
+
+
+### Random
+
+This option places the seam randomly across the object, which can help to distribute the seam points and increase the overall strength of the print.
+
+
+
+## Modifiers
+
+### Staggered inner seams
+
+As the seam location forms a weak point in the print (it's a discontinuity in the extrusion process after all!), staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
+
+### Seam gap
+
+Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam. A larger gap will reduce the bulging seen at the seam. A smaller gap reduces the visual appearance of a seam. For a well-tuned printer with pressure advance, a value of 0-15% is typically optimal.
+
+
+
+### Scarf joint seam
+
+Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
+
+### Role-based wipe speed
+
+Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model. It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
+
+### Wipe speed
+
+If role-based wipe speed is disabled, set this field to the absolute wipe speed or as a percentage over the travel speed.
+
+### Wipe on loop(inward movement)
+
+When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
+
+
+
+
+
+
+
+### Wipe Before External
+
+To minimize the visibility of potential over-extrusion at the start of an external perimeter, the de-retraction move is performed slightly on the inside of the model and, hence, the start of the external perimeter. That way, any potential over-extrusion is hidden from the outside surface.
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.
@@ -31,8 +77,8 @@ Unless printed in spiral vase mode, every layer needs to begin somewhere and end
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.
-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.
+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.
## Troubleshooting Seam Performance:
@@ -45,7 +91,7 @@ There are several factors that influence how clean the seam of your model is, wi
However, due to mechanical and material tolerances, as well as the very nature of 3D printing with FFF, that is not always possible. Hopefully with some tuning you'll be able to achieve prints like this!
-
+
### Troubleshooting the Start of a Seam:
@@ -83,4 +129,4 @@ Finally, the techniques of **wiping can help improve the visual continuity and c
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.**
-For optimal seam performance, printing with **inner-outer-inner wall order is typically best, followed by inner-outer**. It reduces the amount of traveling performed prior to printing the external perimeter and ensures the nozzle is having as consistent pressure as possible, compared to printing outer-inner.
\ No newline at end of file
+For optimal seam performance, printing with **inner-outer-inner wall order is typically best, followed by inner-outer**. It reduces the amount of traveling performed prior to printing the external perimeter and ensures the nozzle is having as consistent pressure as possible, compared to printing outer-inner.
diff --git a/doc/semm.md b/doc/semm.md
index 9081d3cb8f..a5e22f3584 100644
--- a/doc/semm.md
+++ b/doc/semm.md
@@ -16,4 +16,4 @@ Ramming is a technique used to push the filament through the nozzle to ensure th
## Manual filament change
Manual filament change is a feature that allows the user to change the filament during the print. This can be useful for multi-material prints or when changing colors. The user can specify the position and timing of the filament change, as well as the speed and distance of the ramming process.
-WIP...
\ No newline at end of file
+WIP...
diff --git a/doc/stl-transformation.md b/doc/stl-transformation.md
index 41467f12ae..7a1ea7ec39 100644
--- a/doc/stl-transformation.md
+++ b/doc/stl-transformation.md
@@ -5,7 +5,7 @@ OrcaSlicer primarily relies on STL meshes for slicing, but STL files may come wi
Typically, STL files feature a low polygon count, which can adversely affect print quality.
In contrast, using STEP files offers a higher-quality mesh that more accurately represents the original design. However, be aware that both high-polygon STL and STEP files can increase slicing time.
-
+
## Importing STEP files
@@ -13,30 +13,30 @@ This setting determines how STEP files are converted into STL files and is displ
If you don't see this when opening a STEP file, check [Don't show again](#Don't-show-again) below.
-
+
### Parameters:
The transformation uses [Linear Deflection and Angular Deflection](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html) parameters to control the mesh quality.
A finer mesh will result in a more accurate representation of the original surface, but it will also increase the file size and processing time.
-
+
-- **Linear Deflection**: Specifies the maximum distance allowed between the original surface and its polygonal approximation. Lower values produce a mesh that more accurately follows the original curvature.
-- **Angular Deflection**: Defines the maximum allowable angle difference between the actual surface and its tessellated counterpart. Smaller angular deflection values yield a more precise mesh.
+- **Linear Deflection:** Specifies the maximum distance allowed between the original surface and its polygonal approximation. Lower values produce a mesh that more accurately follows the original curvature.
+- **Angular Deflection:** Defines the maximum allowable angle difference between the actual surface and its tessellated counterpart. Smaller angular deflection values yield a more precise mesh.
#### Split compound and compsolid into multiple objects:
Enabling this option will split the imported 3D file into separate objects. This is especially useful for adjusting individual object positions, tweaking print settings, or optimizing the model through simplification.
-
+
#### Don't show again
This option will hide the STL transformation dialog when opening a STEP file.
To restore the dialog, go to "Preferences" (Ctrl + P) > "Show the STEP mesh parameter setting dialog".
-
+
## Simplify model
@@ -46,11 +46,11 @@ This function is especially useful for improving the performance of the slicer o
To access the Simplify Model option, right-click on the object to simplify in the "Prepare" menu.
-
+
It is recommended to enable the "Show Wireframe" option when running a simplification process to visually inspect the outcome. However, be cautious: overly aggressive simplification may lead to noticeable detail loss, increased ringing, or other printing issues.
### You can Simplify your model using the following options:
- **Detail Level:** Control the level of detail in the simplified model by choosing from five preset options. This setting allows for a balance between mesh fidelity and performance.
-- **Decimate Ratio:** Adjust the ratio between the original model's polygon count and that of the simplified model. For instance, a decimate ratio of 0.5 will yield a model with approximately half the original number of polygons.
\ No newline at end of file
+- **Decimate Ratio:** Adjust the ratio between the original model's polygon count and that of the simplified model. For instance, a decimate ratio of 0.5 will yield a model with approximately half the original number of polygons.
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 7655c52496..e566b15f00 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -2056,17 +2056,17 @@ void TabPrint::build()
optgroup->append_single_option_line("seam_position", "quality_settings_seam");
optgroup->append_single_option_line("staggered_inner_seams", "quality_settings_seam");
optgroup->append_single_option_line("seam_gap","quality_settings_seam");
- optgroup->append_single_option_line("seam_slope_type", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_conditional", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("scarf_angle_threshold", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("scarf_overhang_threshold", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("scarf_joint_speed", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_start_height", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_entire_loop", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_min_length", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_steps", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("scarf_joint_flow_ratio", "seam#scarf-joint-seam");
- optgroup->append_single_option_line("seam_slope_inner_walls", "seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_type", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_conditional", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("scarf_angle_threshold", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("scarf_overhang_threshold", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("scarf_joint_speed", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_start_height", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_entire_loop", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_min_length", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_steps", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("scarf_joint_flow_ratio", "quality_settings_seam#scarf-joint-seam");
+ optgroup->append_single_option_line("seam_slope_inner_walls", "quality_settings_seam#scarf-joint-seam");
optgroup->append_single_option_line("role_based_wipe_speed","quality_settings_seam");
optgroup->append_single_option_line("wipe_speed", "quality_settings_seam");
optgroup->append_single_option_line("wipe_on_loops","quality_settings_seam");