Wiki Update 7 (#10007)
Some checks failed
Build all / Build All (push) Has been cancelled
Build all / Flatpak (push) Has been cancelled
Publish docs to Wiki / Publish docs to Wiki (push) Has been cancelled

* Large images optimizations

* Add image and update instructions for junction deviation

Added a new image illustrating the printer jerk limitation setting and updated the calibration documentation to clarify steps for setting Maximum Junction Deviation. Improved formatting and corrected a typo in the instructions.

* Update README links to Wiki

* Fix Wiki image paths + Typos

* Fixes, typos and Infill improvements

* Update VFA calibration guide and add resonance avoidance

Expanded the VFA calibration documentation with more detailed explanations of VFA causes, the VFA Speed Test, and how to use the Resonance Avoidance Speed Range. Added a new image illustrating the resonance avoidance configuration.

* Add surface density setting to top/bottom shells docs

* Ironing Wiki Wip

* Wall and surfaces wiki wip

* Fix top/bottom link

* Better topbottom reddirect

* bridging wiki wip

* Fix TOP bottom

* Wall wiki wip

* strength advanced wiki wip

* speed advance renaming

* inital speed wiki wip

* Other Layer Speed Wiki Wip...

* Speed overhang Wiki WIP

* Travel speed wiki wip

* Speed acceleration wiki wip

* Update speed_settings_initial_layer_speed.md

* Jerk Wiki Wip

* support wiki wip

* Raft wiki wip

* support filamnet wiki wip

* Support ironing wiki wip

* Support advanced Wiki Wip

* Tree wiki wip

* STL images optimizations

* Prime tower wiki wip

* Update PA line diagram images

Were bigger than original used to crop this ones.

* Ooze wiki wip

* Flush wiki wip

* Image optimizatios

* Clarify TPMS-D infill description

Updated the TPMS-D infill section to specify that it refers to the Schwarz Diamond surface, improving clarity for users. Also updated the infill calculator spreadsheet.

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

* images+++

* Multimaterial advanced Wiki Wip

* Skirt Wiki Wip

* Brim wiki wip

* Add Junction Deviation formula to documentation

Included the mathematical formula for Junction Deviation in the cornering calibration documentation to clarify its calculation.

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

* Others special mode Wiki Wip

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

* Fix links

* Fill Multiline infill Wiki

Introduced a new section in the infill documentation describing the Fill Multiline setting, its differences from other slicers, and its use cases. Added a comparison table and illustrative GIF to clarify how OrcaSlicer maintains density and material usage when using multiple infill lines.

* Multiline infill wiki update

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

* Multiline Tab.cpp

* Gcode output Wiki Wip

* Others wiki wips

* Home quality

* Add process links in home

* Quality Basic Missing descriptions

* Update quality_settings_bridging.md

* basic desc

* basic advance strentgth

* Basic speed

* basic other speeds

* Fix link

* Update speed_settings_overhang_speed.md

* Update speed_settings_travel.md

* Update speed_settings_acceleration.md

* Fix

* Expand documentation for acceleration and jerk settings

* Support wiki

* Raft wiki

* Support wiki desc

* Prime tower wiki

* Multimaterial wiki desc

* Filament to features wiki

* Ooze improve

* Fix duplicate text

* Fix typo in volumetric speed calibration guide

Corrected 'promoted' to 'prompted' in the instructions for entering test settings in the volumetric speed calibration documentation.

* centeres image

* Overlapping gif

* Others wiki basic desc

* Clarify retraction calibration recommendation

Expanded the explanation for calibrating retraction settings, specifying that it should be done after Flow and Pressure Advance calibration for optimal extrusion setup.

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

* Links in Readme + minor change

Refined links and formatting in README for better navigation. Expanded wall printing order section in quality settings documentation to clarify Inner/Outer, Inner/Outer/Inner, and Outer/Inner modes. Updated calibration guide images and formatting for improved clarity.

* Add SVG icons to infill pattern comparison table

* Delete doc/images/gui directory

remplaced with GUI

* Create process-preset-full.png

---------

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
This commit is contained in:
Ian Bassi 2025-07-07 21:53:53 -03:00 committed by GitHub
parent b785f40fb0
commit eba08bf727
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
94 changed files with 1618 additions and 382 deletions

View file

@ -30,23 +30,23 @@ Optimize your prints with ultra-fast slicing, intelligent support generation, an
Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance.
- **[Precise Wall](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_seam)**
Adjust outer wall spacing and apply scarf seams to enhance print accuracy.
- **Sandwich Mode and [Polyholes](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support**
- **[Sandwich Mode](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_wall_and_surfaces#innerouterinner) and [Polyholes](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support**
Use varied infill patterns and accurate hole shapes for improved clarity.
- **Overhang and Support Optimization**
- **[Overhang](https://github.com/SoftFever/OrcaSlicer/wiki/speed_settings_overhang_speed) and [Support Optimization](https://github.com/SoftFever/OrcaSlicer/wiki#support-settings)**
Modify geometry for printable overhangs with precise support placement.
- **Granular Controls and Customization**
- **[Granular Controls](https://github.com/SoftFever/OrcaSlicer/wiki#process-settings) and Customization**
Fine-tune print speed, layer height, pressure, and temperature with precision.
- **Network Printer Support**
Seamless integration with Klipper, PrusaLink, and OctoPrint for remote control.
- **Mouse Ear Brims & Adaptive Bed Mesh**
- **[Mouse Ear Brims](https://github.com/SoftFever/OrcaSlicer/wiki/others_settings_brim) & Adaptive Bed Mesh**
Automatic brims and adaptive mesh calibration ensure consistent adhesion.
- **User-Friendly Interface**
Intuitive drag-and-drop design with pre-made profiles for popular printers.
- **Open-Source & Community Driven**
- **[Open-Source](https://github.com/SoftFever/OrcaSlicer) & [Community Driven](https://discord.gg/P4VE9UY9gJ)**
Regular updates fueled by continuous community contributions.
- **Wide Printer Compatibility**
Supports a broad range of printers: Bambu Lab, Prusa, Creality, Voron, and more.
- Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
- Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/).
# Wiki
@ -54,8 +54,8 @@ The wiki below aims to provide a detailed explanation of the slicer settings, in
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)**
- **[Access the wiki here](https://github.com/SoftFever/OrcaSlicer/wiki)**
- **[Contribute to the wiki](https://github.com/SoftFever/OrcaSlicer/wiki/How-to-wiki)**
# Download

View file

@ -21,7 +21,7 @@ Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wik
## Printer Settings
![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/printer-preset.png)
![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png)
- [Air filtration/Exhaust fan handling](air-filtration)
- [Auxiliary fan handling](Auxiliary-fan)
@ -31,7 +31,7 @@ Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wik
## Material Settings
![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/filament-preset.png)
![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png)
- [Single Extruder Multimaterial](semm)
- [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient)
@ -44,13 +44,13 @@ First steps to prepare your model/s for printing.
## Process Settings
![process-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process-preset.png)
![process-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process-preset.png)
The below sections provide a detailed settings explanation as well as tips and tricks in setting these for optimal print results.
### Quality Settings
![process-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-quality.png?raw=true)
![process-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-quality.png?raw=true)
- [Layer Height Settings](quality_settings_layer_height)
- [Line Width Settings](quality_settings_line_width)
@ -66,38 +66,63 @@ The below sections provide a detailed settings explanation as well as tips and t
- [Precise wall](quality_settings_precision#precise-wall)
- [Precise Z Height](quality_settings_precision#precise-z-height)
- [Polyholes](quality_settings_precision#polyholes)
- [Ironing](quality_settings_ironing)
- [Wall generator](quality_settings_wall_generator)
- [Walls and surfaces](quality_settings_wall_and_surfaces)
- [Bridging](quality_settings_bridging)
### Strength Settings
![process-strength](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-strength.png?raw=true)
![process-strength](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-strength.png?raw=true)
- [Walls](strength_settings_walls)
- [Top and Bottom Shells](strength_settings_top_bottom_shells)
- [Infill](strength_settings_infill)
- [Advanced](strength_settings_advanced)
### Speed Settings
![process-speed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-speed.png?raw=true)
![process-speed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-speed.png?raw=true)
- [Extrusion rate smoothing](speed_settings_extrusion_rate_smoothing)
- [Initial Layer Speed](speed_settings_initial_layer_speed)
- [Other Layers Speed](speed_settings_other_layers_speed)
- [Overhang Speed](speed_settings_overhang_speed)
- [Travel Speed](speed_settings_travel)
- [Acceleration](speed_settings_acceleration)
- [Jerk (XY)](speed_settings_jerk_xy)
- [Advanced / Extrusion rate smoothing](speed_settings_advanced)
### Support Settings
![process-support](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-support.png?raw=true)
![process-support](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-support.png?raw=true)
WIP...
- [Support](support_settings_support)
- [Raft](support_settings_raft)
- [Support Filament](support_settings_filament)
- [Support Ironing](support_settings_ironing)
- [Advanced](support_settings_advanced)
- [Tree Supports](support_settings_tree)
### Multimaterial Settings
![process-multimaterial](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-multimaterial.png?raw=true)
![process-multimaterial](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-multimaterial.png?raw=true)
WIP...
- [Prime Tower](multimaterial_settings_prime_tower)
- [Filament for Features](multimaterial_settings_filament_for_features)
- [Ooze Prevention](multimaterial_settings_ooze_prevention)
- [Flush Options](multimaterial_settings_flush_options)
- [Advanced](multimaterial_settings_advanced)
### Others Settings
![process-others](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process/process-others.png?raw=true)
![process-others](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-others.png?raw=true)
WIP...
[Skirt](others_settings_skirt)
[Brim](others_settings_brim)
[Special Mode](others_settings_special_mode)
[G-Code Output](others_settings_g_code_output)
[Post Processing Scripts](others_settings_post_processing_scripts)
[Notes](others_settings_notes)
## Calibrations

View file

@ -19,15 +19,15 @@ The recommended order for calibration is as follows:
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.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-pass1.jpg?raw=true" alt="flowrate-pass1" height="200">
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-6.jpg?raw=true" alt="flowrate-6" height="200">
1. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle.
- **[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.
- **[Adaptive Pressure Advance](adaptive-pressure-advance-calib):** This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-tower.jpg?raw=true" alt="pa-tower" height="200">
2. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and
2. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_print.jpg?raw=true" alt="Retraction" height="200">
@ -37,7 +37,7 @@ The recommended order for calibration is as follows:
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.
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vmf_measurement_point.jpg?raw=true" alt="Max_Volumetric_Speed" height="200">
<img src="https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_measurement_point.jpg?raw=true" alt="Max_Volumetric_Speed" height="200">
5. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction.

View file

@ -43,7 +43,7 @@ In addition, it means that you only need to tune this feature once and print acr
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:
### 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.
![apa-expected-results](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-results.jpg?raw=true)
@ -92,20 +92,20 @@ For this example, lets assume that the baseline number of tests is adequate f
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
| Speed | Acceleration |
|-------|--------------|
| 50 | 1k |
| 100 | 1k |
| 150 | 1k |
| 200 | 1k |
| 50 | 2k |
| 100 | 2k |
| 150 | 2k |
| 200 | 2k |
| 50 | 4k |
| 100 | 4k |
| 150 | 4k |
| 200 | 4k |
### Identifying the flow rates from the print speed
@ -117,17 +117,17 @@ 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.
#### 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.
![apa-test210](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-test210.jpg?raw=true)
![apa-test210](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-test210.png?raw=true)
### 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. **
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.
@ -139,7 +139,7 @@ It is recommended that the PA step is set to a small value, to allow you to make
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:
![pa-pattern-batch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true?raw=true)
![pa-pattern-batch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true?raw=true)
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.
@ -151,11 +151,10 @@ Setup your PA test as usual from the calibration menu in Orca slicer. Once setup
![apa-setup-result-speed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-speed.png?raw=true)
![alt text](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-acceleration-jerk.png?raw=true)
![apa-setup-result-acceleration-jerk](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-acceleration-jerk.png?raw=true)
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.
@ -190,7 +189,7 @@ Remember to paste the values in the adaptive pressure advance measurements text
### Tips
#### Model input:
#### 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.
@ -200,7 +199,7 @@ Similarly for acceleration in the above example youll input only 4 rows i
**However, make sure a triplet of values is always provided PA value, Flow, Acceleration.**
#### Identifying the right PA:
#### 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. Its 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.

View file

@ -12,6 +12,10 @@ Junction Deviation is the default method for controlling cornering speed in Marl
Higher values result in more aggressive cornering speeds, while lower values produce smoother, more controlled cornering.
The default value in Marlin is typically set to 0.08mm, which may be too high for some printers, potentially causing ringing. Consider lowering this value to reduce ringing, but avoid setting it too low, as this could lead to excessively slow cornering speeds.
```math
JD = 0,4 \cdot \frac{\text{Jerk}^2}{\text{Accel.}}
```
1. Pre-requisites:
1. Check if your printer has Junction Deviation enabled. You can do this by sending the command `M503` to your printer and looking for the line `Junction deviation: 0.25`.
2. In OrcaSlicer, set:
@ -38,23 +42,33 @@ The default value in Marlin is typically set to 0.08mm, which may be too high fo
![jd_second_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_slicer_measure.png?raw=true)
3. Save the settings
1. Set your Maximun Junction Deviation value in [Printer settings/Motion ability/Jerk limitation].
1. Set your Maximum Junction Deviation value in [Printer settings/Motion ability/Jerk limitation].
![jd_printer_jerk_limitation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_printer_jerk_limitation.png?raw=true)
2. Use the following G-code to set the mm:
```gcode
M205 J#JunctionDeviationValue
M500
```
Example
```gcode
M205 J0.012
M500
```
3. Recompile your MarlinFW
1. In Configuration.h uncomment and set:
```cpp
#define JUNCTION_DEVIATION_MM 0.012 // (mm) Distance from real junction edge
```
2. Check Classic Jerk is disabled (commented).
```cpp
//#define CLASSIC_JERK
```

View file

@ -8,7 +8,7 @@ The Flow Ratio determines how much filament is extruded and plays a key role in
> [!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`.
> YOLO (Recommended) and YOLO (perfectionist version) use a new system that is very simple `FlowRatio_old±modifier`.
![flow-calibration](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flow-calibration.gif?raw=true)

View file

@ -28,7 +28,7 @@ Steps:
![pa-lines](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-lines.png?raw=true)
![pa-line-0-016](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-line-0-016.jpg?raw=true)
![pa-line-0-016](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-line-0-016.png?raw=true)
![pressure_advance_enable](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pressure_advance_enable.png?raw=true)
@ -42,7 +42,7 @@ Test configuration window allow user to generate one or more tests in a single p
1. Single test \
![PA pattern single test](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-single.png?raw=true)
2. Batch mode testing (multiple tests on a sinle plate) \
2. Batch mode testing (multiple tests on a single plate) \
![PA pattern batch mode](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true)
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:
@ -61,7 +61,7 @@ Next, Ellis' generator provided the ability to adjust specific printer, filament
1. Ellis specified line widths as a percent of filament diameter. The Orca pattern method does the same to provide its suggested defaults, making use of Ellis' percentages in combination with your specified nozzle diameter
2. In terms of line width, the pattern only makes use of the `Default` and `First layer` widths
3. In terms of speed, the pattern only uses the `First layer speed -> First layer` and `Other layers speed -> Outer wall` speeds
4. The infill pattern beneath the numbers cannot be changed becuase it's not actually an infill pattern pulled from the settings. All of the pattern G-Code is custom written, so that "infill" is, effectively, hand-drawn and so not processed through the usual channels that would enable Orca to recognize it as infill
4. The infill pattern beneath the numbers cannot be changed because it's not actually an infill pattern pulled from the settings. All of the pattern G-Code is custom written, so that "infill" is, effectively, hand-drawn and so not processed through the usual channels that would enable Orca to recognize it as infill
## Tower method

View file

@ -1,13 +1,22 @@
# 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.
Vertical Fine Artifacts (VFA) are small surface imperfections that appear on vertical walls, especially near sharp corners or sudden directional changes. These artifacts are typically caused by mechanical vibrations, motor resonance, or rapid directional shifts that impact print quality.
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](cornering-calib) corrections or [Input Shaping](input-shaping-calib).
- **Mechanical adjustments**, such as tuning or replacing motors, belts, or pulleys.
- **MMR (Motor Resonance Rippling)** is a common subtype of VFA caused by stepper motors vibrating at resonant frequencies, leading to periodic ripples on the surface.
- **[Jerk/Junction Deviation](cornering-calib)** settings can also contribute to VFA, as they control how the printer handles rapid changes in direction.
- **[Input Shaping](input-shaping-calib)** can help mitigate VFA by reducing vibrations during printing.
## VFA Test
OrcaSlicer's VFA test is used to identify the print speed that minimizes ringing artifacts. It prints a tower with walls at key angles while gradually increasing the print speed. The goal is to find the speed at which VFA artifacts are least visible, revealing the optimal range for clean surfaces.
The VFA Speed Test in OrcaSlicer helps identify which print speeds trigger MRR artifacts. It prints a vertical tower with walls at various angles while progressively increasing the print speed.
![vfa_test_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_menu.png?raw=true)
![vfa_test_print](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_print.jpg?raw=true)
After printing, inspect the tower for MRR artifacts. Look for speeds where the surface becomes visibly smoother or rougher. This allows you to pinpoint problematic speed ranges.
You can then configure the **Resonance Avoidance Speed Range** in the printer profile to skip speeds that cause visible artifacts.
![vfa_resonance_avoidance](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_resonance_avoidance.png?raw=true)

View file

@ -2,19 +2,19 @@
This is a test designed to calibrate the maximum volumetric speed of the specific filament. The generic or 3rd party filament types may not have the correct volumetric flow rate set in the filament. This test will help you to find the maximum volumetric speed of the filament.
You will be promted to enter the settings for the test: start volumetric speed, end volumentric speed, and step. It is recommended to use the default values (5mm³/s start, 20mm³/s end, with a step of 0.5), unless you already have an idea of the lower or upper limit for your filament. Select "OK", slice the plate, and send it to the printer.
You will be prompted to enter the settings for the test: start volumetric speed, end volumetric speed, and step. It is recommended to use the default values (5mm³/s start, 20mm³/s end, with a step of 0.5), unless you already have an idea of the lower or upper limit for your filament. Select "OK", slice the plate, and send it to the printer.
Once printed, take note of where the layers begin to fail and where the quality begins to suffer. Pay attention to changes from matte to shiny as well.
![mvf_measurement_point](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/mvf/mvf_measurement_point.jpg?raw=true)
![mvf_measurement_point](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_measurement_point.jpg?raw=true)
Using calipers or a ruler, measure the height of the print at that point. Use the following calculation to determine the correct max flow value: `start + (height-measured * step)` . For example in the photo below, and using the default setting values, the print quality began to suffer at 19mm measured, so the calculation would be: `5 + (19 * 0.5)` , or `13mm³/s` using the default values. Enter your number into the "Max volumetric speed" value in the filament settings.
![mvf_caliper_sample_mvf](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/mvf/mvf_caliper_sample_mvf.jpg?raw=true)
![mvf_caliper_sample_mvf](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_caliper_sample_mvf.jpg?raw=true)
You can also return to OrcaSlicer in the "Preview" tab, make sure the color scheme "flow" is selected. Scroll down to the layer height that you measured, and click on the toolhead slider. This will indicate the max flow level for your filament.
![mvf_gui_flow](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/mvf/mvf_gui_flow.jpg?raw=true)
![mvf_gui_flow](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_gui_flow.jpg?raw=true)
> [!NOTE]
> You may also choose to conservatively reduce the flow by 5-10% to ensure print quality.

View file

@ -292,12 +292,16 @@ Example variant profile:
- The `model` directory under the vendor folder is intended to behave similarly to `machine` profiles.
- Used for additional printer-related 3D models or definitions, stored at:
```
```shell
resources\profiles\vendor_name\model\
```
## Vendor Meta File
```shell
resources\profiles\vendor_name.json
```
Each vendor must include a JSON file in the `resources\profiles` directory, named `vendor_name.json`. This file lists all available models, variants, processes, and filaments:
Example:
@ -401,7 +405,6 @@ In addition to the Orca validator, you should run the `orca_extra_profile_check.
python ./orca_extra_profile_check.py
```
You can also enable or disable specific checks:
- `--help`: displays help information
@ -410,7 +413,6 @@ You can also enable or disable specific checks:
- `--check-materials`: checks default material names in machine profiles
- `--check-obsolete-keys`: checks for obsolete keys in profiles
#### Sample usage with all checks enabled
```shell

View file

@ -4,17 +4,17 @@ The purpose of this guide is to describe how to contribute to the Orca Slicer tr
Those can be downloaded here:
- https://sourceforge.net/directory/os:windows/?q=gnu+gettext GNUgettext package contains a set of tools to extract strings from the source code and to create the translation Catalog.
- https://poedit.net PoEdit provides good interface for the translators.
- [GNUgettext](https://www.gnu.org/software/gettext/) package contains a set of tools to extract strings from the source code and to create the translation Catalog.
- [PoEdit](https://poedit.net) provides good interface for the translators.
After GNUgettext is installed, it is recommended to add the path to gettext/bin to PATH variable.
Full manual for GNUgettext can be seen here: http://www.gnu.org/software/gettext/manual/gettext.html
Full manual for GNUgettext can be seen here: [http://www.gnu.org/software/gettext/manual/gettext.html](http://www.gnu.org/software/gettext/manual/gettext.html)
### Scenario 1. How do I add a translation or fix an existing translation
1. Get PO-file 'OrcaSlicer_xx.pot' from corresponding sub-folder here:
https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n
[https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n)
2. Open this file in PoEdit as "Edit a translation"
3. Apply your corrections to the translation
4. Push changed OrcaSlicer_xx.po into the original folder
@ -23,14 +23,14 @@ Full manual for GNUgettext can be seen here: http://www.gnu.org/software/gettext
### Scenario 2. How do I add a new language support
1. Get file OrcaSlicer.pot here :
https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n
[https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n)
2. Open it in PoEdit for "Create new translation"
3. Select Translation Language (for example French).
4. As a result you will have fr.po - the file containing translation to French.
Notice. When the translation is complete you need to:
- Rename the file to OrcaSlicer_fr.po
- Click "Save file" button. OrcaSlicer_fr.mo will be created immediately
- Bambu_Studio_fr.po needs to be copied into the sub-folder fr of https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n, and be pushed
- Bambu_Studio_fr.po needs to be copied into the sub-folder fr of [https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n), and be pushed
- copy OrcaSlicer_xx.mo into resources/i18n/xx and rename it to OrcaSlicer.mo, then push the changed file.
( name of folder "fr" means "French" - the translation language).
@ -76,10 +76,13 @@ If you add new file resource, add it to the list of files containing macro `L()`
```
6. Create an English translation catalog with command:
```shell
msgen -o new.po old.po
```
Notice, in this Catalog it will be totally same strings for initial text and translated.
> [!NOTE]
> In this Catalog it will be totally same strings for initial text and translated.
When you have Catalog to translation open POT or PO file in PoEdit and start translating.

View file

@ -1,3 +1,5 @@
# Preset and Bundle
This page deals with the explanation for 3 classes in the code.
## [`Preset`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp)
@ -9,15 +11,15 @@ As the name might suggest this class deals with presets for various things. It d
- `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code.
![process-preset-full](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/process-preset-full.png?raw=true)
![process-preset-full](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process-preset-full.png?raw=true)
- `TYPE_FILAMENT`: As the name suggests this preset is for filaments
![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/filament-preset.png?raw=true)
![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png?raw=true)
- `TYPE_PRINTER`: Preset for printers.
![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/printer-preset.png?raw=true)
![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png?raw=true)
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.

View file

@ -5,24 +5,24 @@ WIP...
> [!WARNING]
> !! incomplete, possibly inaccurate, being updated with new info !!
## [`Plater`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/gui/Plater.hpp)
## [`Plater`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp)
Refers to the entire application. The whole view, file loading, project saving and loading is all managed by this class. This class contains members for the model viewer, the sidebar, gcode viewer and everything else.
## [`Sidebar`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/gui/Plater.hpp)
## [`Sidebar`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp)
This is relating the the sidebar in the application window
![full-sidebar](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/full-sidebar.png?raw=true)
![full-sidebar](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/full-sidebar.png?raw=true)
## [`ComboBox`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/gui/Widgets/ComboBox.hpp)
## [`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
![combobox](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/combobox.png?raw=true)
![combobox](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/combobox.png?raw=true)
## [`Tab`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/gui/Tab.hpp)
## [`Tab`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.hpp)
Refers to the various windows with settings. e.g. the Popup to edit printer or filament preset. Also the section to edit process preset and the object list. These 4 are managed by `TabPrinter`, `TabFilament`, `TabPrint` and `TabPrintModel` respectively.
![tab-popup](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/gui/tab-popup.png?raw=true)
![tab-popup](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/tab-popup.png?raw=true)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 KiB

After

Width:  |  Height:  |  Size: 350 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 838 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 KiB

After

Width:  |  Height:  |  Size: 329 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 MiB

After

Width:  |  Height:  |  Size: 406 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

After

Width:  |  Height:  |  Size: 141 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 298 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 KiB

After

Width:  |  Height:  |  Size: 148 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View file

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 658 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 46 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 99 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 131 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 MiB

After

Width:  |  Height:  |  Size: 235 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 112 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 135 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -11,7 +11,7 @@ In contrast, using STEP files offers a higher-quality mesh that more accurately
This setting determines how STEP files are converted into STL files and is displayed during the STEP file import process.
If you don't see this when opening a STEP file, check [Don't show again](#Don't-show-again) below.
If you don't see this when opening a STEP file, check [Don't show again](#dont-show-again) below.
![stl-transformation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation.png?raw=true)
@ -25,7 +25,7 @@ A finer mesh will result in a more accurate representation of the original surfa
- **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:
#### 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.
@ -50,7 +50,7 @@ To access the Simplify Model option, right-click on the object to simplify in th
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:
### 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.

View file

@ -0,0 +1,47 @@
# Multimaterial Advanced
- [Interlocking Beam](#interlocking-beam)
- [Interface Shells](#interface-shells)
- [Maximum Width of Segmented Region](#maximum-width-of-segmented-region)
- [Interlocking depth of Segmented Region](#interlocking-depth-of-segmented-region)
- [Interlocking Beam Width](#interlocking-beam-width)
- [Interlocking Direction](#interlocking-direction)
- [Interlocking Beam Layers](#interlocking-beam-layers)
- [Interlocking Depth](#interlocking-depth)
- [Interlocking Boundary Avoidance](#interlocking-boundary-avoidance)
## Interlocking Beam
Generate interlocking beam structure at the locations where different filaments touch. This improves the adhesion between filaments, especially models printed in different materials.
## Interface Shells
Force the generation of solid shells between adjacent materials/volumes. Useful for multi-extruder prints with translucent materials or manual soluble support material.
## Maximum Width of Segmented Region
Maximum width of a segmented region. Zero disables this feature.
## Interlocking depth of Segmented Region
Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature.
## Interlocking Beam Width
The width of the interlocking structure beams.
## Interlocking Direction
Orientation of interlock beams.
## Interlocking Beam Layers
The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.
## Interlocking Depth
The distance from the boundary between filaments to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.
## Interlocking Boundary Avoidance
The distance from the outside of a model where interlocking structures will not be generated, measured in cells.

View file

@ -0,0 +1,19 @@
# Filament for Features
This option is available only for Multi-Extruder printers.
## Walls
Filament to print walls.
## Infill
Filament to print internal sparse infill.
## Solid infill
Filament to print solid infill.
## Wipe Tower
The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred).

View file

@ -0,0 +1,9 @@
# Flush Options
## Flush into objects' infill
Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be seen outside. It will not take effect, unless the prime tower is enabled.
## Flush into objects' support
Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect, unless the prime tower is enabled.

View file

@ -0,0 +1,15 @@
# Ooze prevention
This option will drop the temperature of the inactive extruders to prevent oozing.
## Temperature variation
Temperature difference to be applied when an extruder is not active. The value is not used when 'idle_temperature' in filament settings is set to non-zero value.
## Preheat time
To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance.
## Preheat steps
Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1.

View file

@ -0,0 +1,73 @@
# Prime Tower
The wiping tower can be used to clean up the residue on the nozzle and "
"stabilize the chamber pressure inside the nozzle, in order to avoid "
"appearance defects when printing objects.
## Width
Width of the prime tower.
## Brim width
Width of the brim around the prime tower.
## Wipe Tower Rotation Angle
Wipe tower rotation angle with respect to x-axis.
## Maximal bridging distance
Maximal distance between supports on sparse infill sections.
## Wipe tower purge lines spacing
Spacing of purge lines on the wipe tower.
## Extra flow for purge
Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically.
## Maximum wipe tower print speed
The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.
When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.
Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.
Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.
For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting.
## Wall type
Wipe tower outer wall type.
### Rectangle
The default wall type, a rectangle with fixed width and height.
### Cone
A cone with a fillet at the bottom to help stabilize the wipe tower.
#### Stabilization cone apex angle
Angle at the apex of the cone that is used to stabilize the wipe tower. Large angle means wider base.
### Rib
Adds four ribs to the tower wall for enhanced stability.
#### Extra rib length
Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume.
#### Rib width
Width of the rib wall.
#### Fillet wall
The wall of prime tower will fillet.
## No sparse layers
If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print.

View file

@ -0,0 +1,46 @@
# Brim
Brim is a flat layer printed around the base of a model to help with adhesion to the print bed. It can be useful for models with small footprints or those that are prone to warping.
## Type
This controls the generation of the brim at outer and/or inner side of models.
Auto means the brim width is analyzed and calculated automatically.
### Painted
Painted will generate a brim only on painted areas of the model in the Prepare tab.
### Outer
Outer will generate a brim around the outer perimeter of the model.
Easier to remove than inner brim but can affect the model's appearance if the brim is not removed cleanly.
### Inner
Inner will generate a brim around the inner perimeter of the model.
More difficult to remove than outer brim and may close the model's inner details, but can hide where the brim was removed.
### Mouse Ears
Mouse ears are small extensions added to the brim to help with adhesion and prevent warping.
Usually this ears are added in the corners of objects to provide additional support and affect the model's appearance less than a full brim.
#### Ear max angle
Maximum angle to let a brim ear appear.
If set to 0, no brim will be created.
If set to ~180, brim will be created on everything but straight sections.
#### Ear detection radius
The geometry will be decimated before detecting sharp angles. This parameter indicates the minimum length of the deviation for the decimation.
0 to deactivate.
## Width
Distance from model to the outermost brim line.
## Brim-Object Gap
A gap between innermost brim line and object can make brim be removed more easily.

View file

@ -0,0 +1,27 @@
# G-Code Output
G-code output settings control how the G-code is generated and formatted. These settings can affect the readability of the G-code, the efficiency of the print, and compatibility with various firmware, printers and post-processing tools.
## Reduce Infill Retraction
Don't retract when the travel is in infill area absolutely. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower.
## Add line number
Enable this to add line number(Nx) at the beginning of each G-code line.
## Verbose G-code
Enable this to get a commented G-code file, with each line explained by a descriptive text. If you print from SD card, the additional weight of the file could make your firmware slow down.
## Label Objects
Enable this to add comments into the G-code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plugin. This settings is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill.
## Exclude Objects
Enable this option to add EXCLUDE OBJECT command in G-code.
## Filename Format
Users can define the project file name when exporting.

View file

@ -0,0 +1,3 @@
# Notes
You can put your notes regarding the filament here.

View file

@ -0,0 +1,3 @@
# Post-Processing Scripts
Here you can set up post-processing scripts that will be executed after slicing. This allows you to modify the G-code output or perform additional tasks.

View file

@ -0,0 +1,46 @@
# Skirt
Skirts are additional perimeters printed at the base of the model to prime the nozzle.
## Loops
Number of loops for the skirt. Zero means disabling skirt.
## Type
- Combined - single skirt for all objects.
- Per object - individual object skirt.
## Minimum extrusion Length
Minimum filament extrusion length in mm when printing the skirt. Zero means this feature is disabled.
Using a non-zero value is useful if the printer is set up to print without a prime line.
Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case.
## Distance
Distance from skirt to brim or object.
## Start point
Angle from the object center to skirt start point. Zero is the most right position, counter clockwise is positive angle.
## Speed
Speed of skirt, in mm/s. Zero means use default layer extrusion speed.
## Height
How many layers of skirt. Usually only one layer.
## Shield
A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.
"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.
> [!NOTE]
> With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.
## Single loop after first layer
Limits the draft shield loops to one wall after the first layer. This is useful, on occasion, to conserve filament but may cause the draft shield to warp / crack.

View file

@ -0,0 +1,158 @@
# Special Mode
- [Slicing Mode](#slicing-mode)
- [Regular](#regular)
- [Close Holes](#close-holes)
- [Even Odd](#even-odd)
- [Print Sequence](#print-sequence)
- [By Layer](#by-layer)
- [Intra-layer order](#intra-layer-order)
- [By Object](#by-object)
- [Spiral vase](#spiral-vase)
- [Smooth Spiral](#smooth-spiral)
- [Max XY Smoothing](#max-xy-smoothing)
- [Spiral starting flow ratio](#spiral-starting-flow-ratio)
- [Spiral finishing flow ratio](#spiral-finishing-flow-ratio)
- [Timelapse](#timelapse)
- [Fuzzy Skin](#fuzzy-skin)
- [Fuzzy Skin Mode](#fuzzy-skin-mode)
- [Contour](#contour)
- [Contour and Hole](#contour-and-hole)
- [All Walls](#all-walls)
- [Noise Type](#noise-type)
- [Classic](#classic)
- [Perlin](#perlin)
- [Billow](#billow)
- [Ridged Multifractal](#ridged-multifractal)
- [Voronoi](#voronoi)
- [Point distance](#point-distance)
- [Skin thickness](#skin-thickness)
- [Skin feature size](#skin-feature-size)
- [Skin Noise Octaves](#skin-noise-octaves)
- [Skin Noise Persistence](#skin-noise-persistence)
- [Apply fuzzy skin to first layer](#apply-fuzzy-skin-to-first-layer)
## Slicing Mode
The slicing mode determines how the model is sliced into layers and how the G-code is generated. Different modes can be used to achieve various printing effects or to optimize the print process.
### Regular
This is the default slicing mode. It slices the model layer by layer, generating G-code for each layer.
### Close Holes
Use "Close holes" to close all holes in the model.
### Even Odd
Use "Even-odd" for 3DLabPrint airplane models.
## Print Sequence
How multiple objects are printed in a single print job.
### By Layer
This option prints all objects layer by layer, one layer at a time.
#### Intra-layer order
Print order within a single layer.
- **Default**: Prints objects based on their position in the bed and travel distance.
- **As object list**: Prints objects in the order they are listed in the object list.
### By Object
This option prints each object completely before moving on to the next object.
## Spiral vase
Spiralize smooths out the z moves of the outer contour. And turns a solid model into a single walled print with solid bottom layers. The final generated model has no seam.
### Smooth Spiral
Smooth Spiral smooths out X and Y moves as well, resulting in no visible seam at all, even in the XY directions on walls that are not vertical.
#### Max XY Smoothing
Maximum distance to move points in XY to try to achieve a smooth spiral. If expressed as a %, it will be computed over nozzle diameter.
### Spiral starting flow ratio
Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop which can in some cases lead to under extrusion at the start of the spiral.
### Spiral finishing flow ratio
Sets the finishing flow ratio while ending the spiral. Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop which can in some cases lead to under extrusion at the end of the spiral.
## Timelapse
WIP...
## Fuzzy Skin
Randomly jitter while printing the wall, so that the surface has a rough look. This setting controls the fuzzy position.
### Fuzzy Skin Mode
#### Contour
Use "Contour" to apply fuzzy skin only to the outer contour of the model.
#### Contour and Hole
Use "Contour and Hole" to apply fuzzy skin to the outer contour and holes of the model. This is useful for models with internal features that you want to highlight.
#### All Walls
Use "All Walls" to apply fuzzy skin to external and inner walls of the model.
### Noise Type
Noise type to use for fuzzy skin generation.
#### Classic
Classic uniform random noise.
#### Perlin
Perlin noise, which gives a more consistent texture.
#### Billow
Billow noise is similar to Perlin noise, but has a clumpier appearance. It can create more pronounced features and is often used for natural textures.
#### Ridged Multifractal
Ridged noise with sharp, jagged features. Creates marble-like textures.
#### Voronoi
Voronoi noise divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.
### Point distance
average distance between the random points introduced on each line segment.
### Skin thickness
The width within which to jitter. It's advised to be below outer wall line width."
### Skin feature size
The base size of the coherent noise features, in mm. Higher values will result in larger features.
### Skin Noise Octaves
The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time.
### Skin Noise Persistence
The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise.
### Apply fuzzy skin to first layer
Whether to apply fuzzy skin on the first layer.

View file

@ -0,0 +1,63 @@
# Bridging
"Bridging" is a 3D printing technique that allows you to print structures across gaps or voids without direct support underneath. OrcaSlicer provides several parameters to optimize bridge quality, minimizing filament sag and improving the appearance of top layers.
- [Flow ratio](#flow-ratio)
- [Bridge density](#bridge-density)
- [Thick bridges](#thick-bridges)
- [Extra bridge layers](#extra-bridge-layers)
- [Filter out small internal bridges](#filter-out-small-internal-bridges)
- [Bridge Counterbore hole](#bridge-counterbore-hole)
## Flow ratio
Decrease this value slightly (for example 0.9) to reduce the amount of material for bridge, to improve sag.
The actual bridge flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio.
## Bridge density
This value governs the thickness of the bridge layer. This is the first layer over sparse infill. Decrease this value slightly (for example 0.9) to improve surface quality over sparse infill.
The actual internal bridge flow used is calculated by multiplying this value with the bridge flow ratio, the filament flow ratio, and if set, the object's flow ratio.
## Thick bridges
When enabled, thick bridges increase the reliability and strength of bridges, allowing you to span longer distances. However, this may result in a rougher surface finish. Disabling this option can improve the visual quality of bridges, but is recommended only for shorter spans or when using large nozzle sizes.
## Extra bridge layers
This option enables the generation of an extra bridge layer over internal and/or external bridges.
Extra bridge layers help improve bridge appearance and reliability, as the solid infill is better supported. This is especially useful in fast printers, where the bridge and solid infill speeds vary greatly. The extra bridge layer results in reduced pillowing on top surfaces, as well as reduced separation of the external bridge layer from its surrounding perimeters.
It is generally recommended to set this to at least 'External bridge only', unless specific issues with the sliced model are found.
**Options:**
1. **Disabled** - does not generate second bridge layers. This is the default and is set for compatibility purposes.
2. **External bridge only** - generates second bridge layers for external-facing bridges only. Please note that small bridges that are shorter or narrower than the set number of perimeters will be skipped as they would not benefit from a second bridge layer. If generated, the second bridge layer will be extruded parallel to the first bridge layer to reinforce the bridge strength.
3. **Internal bridge only** - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference.
4. **Apply to all** - generates second bridge layers for both internal and external-facing bridges.
## Filter out small internal bridges
This option can help reduce pillowing on top surfaces in heavily slanted or curved models.
By default, small internal bridges are filtered out and the internal solid infill is printed directly over the sparse infill. This works well in most cases, speeding up printing without too much compromise on top surface quality.
However, in heavily slanted or curved models, especially where too low a sparse infill density is used, this may result in curling of the unsupported solid infill, causing pillowing.
Enabling limited filtering or no filtering will print internal bridge layer over slightly unsupported internal solid infill. The options below control the sensitivity of the filtering, i.e. they control where internal bridges are created:
1. **Filter** - enables this option. This is the default behavior and works well in most cases.
2. **Limited filtering** - creates internal bridges on heavily slanted surfaces while avoiding unnecessary bridges. This works well for most difficult models.
3. **No filtering** - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges.
## Bridge Counterbore hole
This option creates bridges for counterbore holes, allowing them to be printed without support. Available modes include:
1. **None**: No bridge is created.
2. **Partially Bridged**: Only a part of the unsupported area will be bridged.
3. **Sacrificial Layer**: A full sacrificial bridge layer is created.

View file

@ -0,0 +1,27 @@
# Ironing
Ironing is a process used to improve the surface finish of 3D prints by smoothing out the top layers. This is achieved by selectively melting the outermost layer of the print, allowing it to flow and fill in any gaps or imperfections.
## Type
This setting controls which layer being ironed.
## Pattern
The pattern that will be used when ironing.
## Flow
The amount of material to extrude during ironing. Relative to flow of normal layer height. Too high value results in overextrusion on the surface.
## Line spacing
The distance between the lines of ironing.
## Inset
The distance to keep from the edges. A value of 0 sets this to half of the nozzle diameter.
## Angle
The angle ironing is done at. A negative number disables this function and uses the default method.

View file

@ -2,7 +2,7 @@
This setting controls how tall each printed layer will be. Typically, a smaller layer height produces a better-looking part with less jagged edges, especially around curved sections (like the top of a sphere). However, lower layer heights mean more layers to print, proportionally increasing print time.
### Tips:
## Tips
1. **The optimal layer height depends on the size of your nozzle**. The set layer height must not be taller than 80% of the diameter of the nozzle, else there is little "squish" between the printed layer and the layer below, leading to weaker parts.
@ -10,10 +10,10 @@ This setting controls how tall each printed layer will be. Typically, a smaller
For example, it is not uncommon to see "fish scale" type patterns on external walls when printing with a 0.4 mm nozzle at 0.08 mm layer height at speeds of 200mm/sec+. If you observe that pattern, simply increase your layer height to 30% of your nozzle height and/or slow down the print speed considerably.
# First Layer Height
## First Layer Height
This setting controls how tall the first layer of the print will be. Typically, this is set to 50% of the nozzle width for optimal bed adhesion.
### Tip:
### 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.

View file

@ -18,7 +18,7 @@ These settings control how wide the extruded lines are.
- **Support:** The line width in mm or as a percentage of the nozzle size used when printing the models support structures.
## Tips:
## Tips
1. **Typically, the line width will be anything from 100% up to 150% of the nozzle width**. Due to the way the slicers flow math works, a 100% line width will attempt to extrude slightly “smaller” than the nozzle size and when squished onto the layer below will match the nozzle orifice. You can read more on the flow math here: [Flow Math](https://manual.slic3r.org/advanced/flow-math).

View file

@ -12,10 +12,9 @@ This section covers the settings that affect the precision of your prints. These
- [Precise Z Height](#precise-z-height)
- [Polyholes](#polyholes)
## Slice gap closing radius
Cracks smaller than 2x gap closing radiusCracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.
Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.
## Resolution

View file

@ -0,0 +1,87 @@
# Wall and surfaces
- [Walls printing order](#walls-printing-order)
- [Inner/Outer](#innerouter)
- [Inner/Outer/Inner](#innerouterinner)
- [Outer/Inner](#outerinner)
- [Print infill first](#print-infill-first)
- [Wall loop direction](#wall-loop-direction)
- [Surface flow ratio](#surface-flow-ratio)
- [Only one wall](#only-one-wall)
- [Threshold](#threshold)
- [Avoid crossing walls](#avoid-crossing-walls)
- [Max detour length](#max-detour-length)
- [Small area flow compensation](#small-area-flow-compensation)
- [Flow Compensation Model](#flow-compensation-model)
## Walls printing order
Print sequence of the internal (inner) and external (outer) walls.
### Inner/Outer
Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.
### Inner/Outer/Inner
Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.
### Outer/Inner
Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface.
### Print infill first
Order of wall/infill. When the tickbox is unchecked the walls are printed first, which works best in most cases.
Printing infill first may help with extreme overhangs as the walls have the neighbouring infill to adhere to. However, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part.
## Wall loop direction
The direction which the wall loops are extruded when looking down from the top.
By default all walls are extruded in counter-clockwise, unless Reverse on even is enabled. Set this to any option other than Auto will force the wall direction regardless of the Reverse on even.
> [!NOTE]
> This option will be disabled if spiral vase mode is enabled.
## Surface flow ratio
This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.
The actual top surface flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio.
## Only one wall
Use only one wall on flat surfaces, to give more space to the top infill pattern.
### Threshold
If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.
Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts.
## Avoid crossing walls
Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable.
### Max detour length
Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable.
## Small area flow compensation
Enable flow compensation for small infill areas.
### Flow Compensation Model
used to adjust the flow for small infill areas. The model is expressed as a comma separated pair of values for extrusion length and flow correction factors, one per line, in the following format:
```c++
0,0;
0.2,0.4444;
0.4,0.6145;
0.6,0.7059;
0.8,0.7619;
1.5,0.8571;
2,0.8889;
3,0.9231;
5,0.9520;
10,1;
```

View file

@ -0,0 +1,41 @@
# Acceleration
Acceleration in 3D printing is usually set on the printer's firmware settings.
This setting will try to override the acceleration when [normal printing acceleration](#normal-printing) value is different than 0.
Orca will limit the acceleration to not exceed the acceleration set in the Printer's Motion Ability settings.
## Normal printing
The default acceleration of both normal printing and travel.
## Outer wall
Acceleration for outer wall printing. This is usually set to a lower value than normal printing to ensure better quality.
## Inner wall
Acceleration for inner wall printing. This is usually set to a higher value than outer wall printing to improve speed.
## Bridge
Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it will be calculated based on the outer wall acceleration.
## Sparse infill
Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration.
## Internal solid infill
Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration.
## Initial layer
Acceleration of initial layer. Using a lower value can improve build plate adhesion.
## Top surface
Acceleration of top surface infill. Using a lower value may improve top surface quality.
## Travel
Acceleration of travel moves. This is usually set to a higher value than normal printing to reduce travel time.

View file

@ -1,4 +1,4 @@
# Extrusion rate smoothing
# Speed Advanced - Extrusion rate smoothing
Extrusion rate smoothing (ERS), also known as pressure equalizer in Prusa Slicer, aims to **limit the rate of extrusion volume change to be below a user set threshold (the ERS value).** It aims to assist the printer firmware internal motion planners, pressure advance in achieving the desired nozzle flow and reducing deviations against the ideal flow.

View file

@ -0,0 +1,17 @@
# Initial layer speed
## Initial layer
Speed of initial layer except the solid infill part.
## Initial layer infill
Speed of solid infill part of initial layer.
## Initial layer travel speed
Travel speed of initial layer.
## Number of slow layers
The first few layers are printed slower than normal. The speed is gradually increased in a linear fashion over the specified number of layers.

View file

@ -0,0 +1,64 @@
# Jerk XY
Jerk in 3D printing is usually set on the printer's firmware settings.
This setting will try to override the jerk when [normal printing jerk](#normal-printing) or [Junction Deviation](#junction-deviation) value is different than 0.
Orca will limit the jerk to not exceed the jerk set in the Printer's Motion Ability settings.
- [Default](#default)
- [Outer wall](#outer-wall)
- [Inner wall](#inner-wall)
- [Infill](#infill)
- [Top surface](#top-surface)
- [Initial layer](#initial-layer)
- [Travel](#travel)
- [Junction Deviation](#junction-deviation)
- [Useful links](#useful-links)
## Default
Default Jerk value.
### Outer wall
Jerk for outer wall printing. This is usually set to a lower value than normal printing to ensure better quality.
### Inner wall
Jerk for inner wall printing. This is usually set to a higher but still reasonable value than outer wall printing to improve speed.
### Infill
Jerk for infill printing. This is usually set to a value higher than inner wall printing to improve speed.
### Top surface
Jerk for top surface printing. This is usually set to a lower value than infill to ensure better quality.
### Initial layer
Jerk for initial layer printing. This is usually set to a lower value than top surface to improve adhesion.
### Travel
Jerk for travel printing. This is usually set to a higher value than infill to reduce travel time.
## Junction Deviation
Alternative to Jerk, Junction Deviation is the default method for controlling cornering speed in MarlinFW (Marlin2) printers.
Higher values result in more aggressive cornering speeds, while lower values produce smoother, more controlled cornering.
This value will **only be overwritten** if it is lower than the Junction Deviation value set in Printer settings > Motion ability. If it is higher, the value configured in Motion ability will be used.
To Calculate your Junction Deviation value, please refer to the [Junction Deviation Calibration guide](cornering-calib#junction-deviation).
```math
JD = 0,4 \cdot \frac{\text{Jerk}^2}{\text{Accel.}}
```
## Useful links
- [Klipper Kinematics](https://www.klipper3d.org/Kinematics.html?h=accelerat#acceleration)
- [Marlin Junction Deviation](https://marlinfw.org/docs/configuration/configuration.html#junction-deviation-)
- [JD Explained and Visualized, by Paul Wanamaker](https://reprap.org/forum/read.php?1,739819)
- [Computing JD for Marlin Firmware](https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html)
- [Improving GRBL: Cornering Algorithm](https://onehossshay.wordpress.com/2011/09/24/improving_grbl_cornering_algorithm/)

View file

@ -0,0 +1,59 @@
# Other layers speed
- [Outer wall](#outer-wall)
- [Inner wall](#inner-wall)
- [Small perimeters](#small-perimeters)
- [Small perimeters threshold](#small-perimeters-threshold)
- [Sparse infill](#sparse-infill)
- [Internal solid infill](#internal-solid-infill)
- [Top surface](#top-surface)
- [Gap infill](#gap-infill)
- [Ironing speed](#ironing-speed)
- [Support](#support)
- [Support interface](#support-interface)
## Outer wall
Speed of outer wall which is outermost and visible. It's used to be slower than inner wall speed to get better quality.
## Inner wall
Speed of inner wall which is printed faster than outer wall to reduce print time.
## Small perimeters
This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above.
Set to zero for auto.
### Small perimeters threshold
This sets the threshold for small perimeter length.
Default threshold is 0mm.
## Sparse infill
Speed of sparse infill which is printed faster than solid infill to reduce print time.
## Internal solid infill
Speed of internal solid infill which is printed faster than top surface speed to reduce print time.
## Top surface
Speed of top surface which is printed slower than internal solid infill to get better quality.
## Gap infill
Speed of gap infill which is printed faster than top surface speed to reduce print time.
## Ironing speed
Ironing speed, typically slower than the top surface speed to ensure a smooth finish.
## Support
Speed of support material which is printed slower than the main model to ensure proper adhesion and prevent sagging.
## Support interface
Speed of support interface material which is printed slower than the main support material to ensure proper adhesion and prevent sagging.

View file

@ -0,0 +1,21 @@
# Overhang Speed
## Slow down for overhang
Enable this option to slow printing down for different overhang degree.
### Slow down for curled perimeters
Enable this option to slow down printing in areas where perimeters may have curled upwards. For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.
It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed slow enough that perimeter curling does not happen. If printing with a high external perimeter speed, this parameter may introduce slight artifacts when slowing down due to the large variance in print speeds. If you notice artifacts, ensure your pressure advance is tuned correctly.
> [!NOTE]
> When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge. For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied.
### Overhang speed
This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used.
## Bridge speed
Set speed for external and internal bridges.

View file

@ -0,0 +1,3 @@
# Travel
Travel speed is the speed at which the print head moves when not extruding filament. This speed is typically faster than the printing speed, as there is no need to carefully place material. However, setting the travel speed too high can lead to issues such as missed steps or ringing artifacts.

View file

@ -0,0 +1,42 @@
# Strength Advanced
- [Bridge infill direction](#bridge-infill-direction)
- [Minimum sparse infill threshold](#minimum-sparse-infill-threshold)
- [Infill Combination](#infill-combination)
- [Max layer height](#max-layer-height)
- [Detect narrow internal solid infill](#detect-narrow-internal-solid-infill)
- [Ensure vertical shell thickness](#ensure-vertical-shell-thickness)
## Bridge infill direction
Bridging angle override. If left to zero, the bridging angle will be calculated automatically. Otherwise the provided angle will be used for bridges. Use 180° for zero angle.
## Minimum sparse infill threshold
Sparse infill area which is smaller than threshold value is replaced by internal solid infill.
## Infill Combination
Automatically Combine sparse infill of several layers to print together to reduce time. Wall is still printed with original layer height.
### Max layer height
Maximum layer height for the combined sparse infill.
Set it to 0 or 100% to use the nozzle diameter (for maximum reduction in print time) or a value of ~80% to maximize sparse infill strength.
The number of layers over which infill is combined is derived by dividing this value with the layer height and rounded down to the nearest decimal.
Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). This value must not be larger than the nozzle diameter.
## Detect narrow internal solid infill
This option will auto-detect narrow internal solid infill areas. If enabled, the concentric pattern will be used for the area to speed up printing. Otherwise, the rectilinear pattern will be used by default.
## Ensure vertical shell thickness
Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers).
- **None**: No solid infill will be added anywhere. Caution: Use this option carefully if your model has sloped surfaces.
- **Critical Only**: Avoid adding solid infill for walls.
- **Moderate**: Add solid infill for heavily sloping surfaces only.
- **All (default)**: Add solid infill for all suitable sloping surfaces.

View file

@ -3,6 +3,8 @@
Infill is the internal structure of a 3D print, providing strength and support. It can be adjusted to balance material usage, print time, and part strength.
- [Sparse infill density](#sparse-infill-density)
- [Fill Multiline](#fill-multiline)
- [Use cases](#use-cases)
- [Direction and Rotation](#direction-and-rotation)
- [Direction](#direction)
- [Rotation](#rotation)
@ -34,7 +36,7 @@ Infill is the internal structure of a 3D print, providing strength and support.
- [Cross Hatch](#cross-hatch)
- [Quarter Cubic](#quarter-cubic)
- [Zig Zag](#zig-zag)
- [Coss Zag](#coss-zag)
- [Cross Zag](#cross-zag)
- [Locked Zag](#locked-zag)
## Sparse infill density
@ -44,6 +46,42 @@ Higher density increases strength but also material usage and print time. Lower
Nevertheless, **not all patterns interpret density the same way**, so the actual material usage may vary. You can see each pattern's material usage in the [Sparse Infill Pattern](#sparse-infill-pattern) section.
## Fill Multiline
This setting allows you to generate your selected [infill pattern](#sparse-infill-pattern) using multiple parallel lines while preserving both the defined [infill density](#sparse-infill-density) and the overall material usage.
![infill-multiline-1-5](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-1-5.gif?raw=true)
> [!NOTE]
> Orca's approach is different from other slicers that simply multiply the number of lines and material usage, generating a denser infill than expected.
>
>| Infill Density % | Infill Lines | Orca Density | Other Slicers Density |
>|--------------------|--------------|--------------|-----------------------|
>| 10% | 2 | 10% | 20% |
>| 25% | 2 | 25% | 50% |
>| 40% | 2 | 40% | 80% |
>| 10% | 3 | 10% | 30% |
>| 25% | 3 | 25% | 75% |
>| 40% | 3 | 40% | 120% * |
>| 10% | 5 | 10% | 50% |
>| 25% | 5 | 25% | 125% * |
>| 40% | 5 | 40% | 200% * |
>
> *Other slicers may limit the result to 100%.
### Use cases
- Increasing the number of lines (e.g., 2 or 3) can improve part strength and print speed without increasing material usage.
- Fire-retardant applications: Some flame-resistant materials (like PolyMax PC-FR) require a minimum printed wall/infill thickness—often 1.53mm—to comply with standards. Since infill contributes to overall part thickness, using multiple lines helps achieve the necessary thickness without switching to a large nozzle or printing with 100% infill. This is especially useful for high-temperature materials like PC, which are prone to warping when fully solid.
- Creating aesthetically pleasing infill patterns (like [Grid](#grid) or [Honeycomb](#honeycomb)) with multiple line widths—without relying on CAD modeling or being limited to a single extrusion width.
![infill-multiline-esthetic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-esthetic.gif?raw=true)
> [!WARNING]
> For self intersecting infills (e.g. [Cubic](#cubic), [Grid](#grid)) multiline count greater than 3 may cause layer shift, extruder clog or other issues due to overlapping of lines on intersection points.
>
> ![infill-multiline-overlapping](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-overlapping.gif?raw=true)
## Direction and Rotation
### Direction
@ -129,33 +167,33 @@ There is no one-size-fits-all solution, as the best pattern depends on the speci
Many patterns may look similar and have similar overall specifications, but they can behave very differently in practice.
As most settings in 3D printing, experience is the best way to determine which pattern works best for your specific needs.
| Pattern | X-Y Strength | Z Strength | Material Usage | Print Time |
|-----------------------------------------------|--------------|-------------|----------------|-------------|
| [Concentric](#concentric) | Low | Normal | Normal | Normal |
| [Rectilinear](#rectilinear) | Normal-Low | Low | Normal | Normal-Low |
| [Grid](#grid) | High | High | Normal | Normal-Low |
| [2D Lattice](#2d-lattice) | Normal-Low | Low | Normal | Normal-Low |
| [Line](#line) | Low | Low | Normal | Normal-Low |
| [Cubic](#cubic) | High | High | Normal | Normal-Low |
| [Triangles](#triangles) | High | Normal | Normal | Normal-Low |
| [Tri-hexagon](#tri-hexagon) | High | Normal-High | Normal | Normal-Low |
| [Gyroid](#gyroid) | High | High | Normal | Normal-High |
| [TPMS-D](#tpms-d) | High | High | Normal | High |
| [Honeycomb](#honeycomb) | High | High | High | Ultra-High |
| [Adaptive Cubic](#adaptive-cubic) | Normal-High | Normal-High | Low | Low |
| [Aligned Rectilinear](#aligned-rectilinear) | Normal-Low | Normal | Normal | Normal-Low |
| [2D Honeycomb](#2d-honeycomb) | Normal-Low | Normal-Low | Normal | Normal-Low |
| [3D Honeycomb](#3d-honeycomb) | Normal-High | Normal-High | Normal-Low | High |
| [Hilbert Curve](#hilbert-curve) | Low | Normal | Normal | High |
| [Archimedean Chords](#archimedean-chords) | Low | Normal | Normal | Normal-Low |
| [Octagram Spiral](#octagram-spiral) | Low | Normal | Normal | Normal |
| [Support Cubic](#support-cubic) | Low | Low | Extra-Low | Extra-Low |
| [Lightning](#lightning) | Low | Low | Ultra-Low | Ultra-Low |
| [Cross Hatch](#cross-hatch) | Normal-High | Normal-High | Normal | Normal-High |
| [Quarter Cubic](#quarter-cubic) | High | High | Normal | Normal-Low |
| [Zig Zag](#zig-zag) | Normal-Low | Low | Normal | Normal |
| [Coss Zag](#coss-zag) | Normal | Low | Normal | Normal |
| [Locked Zag](#locked-zag) | Normal-Low | Normal-Low | Normal-High | Extra-High |
| SVG | Pattern | X-Y Strength | Z Strength | Material Usage | Print Time |
|---|---|---|---|---|---|
| ![param_concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_concentric.svg?raw=true) | [Concentric](#concentric) | Low | Normal | Normal | Normal |
| ![param_zig-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_zig-zag.svg?raw=true) | [Rectilinear](#rectilinear) | Normal-Low | Low | Normal | Normal-Low |
| ![param_grid](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_grid.svg?raw=true) | [Grid](#grid) | High | High | Normal | Normal-Low |
| ![param_2dlattice](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_2dlattice.svg?raw=true) | [2D Lattice](#2d-lattice) | Normal-Low | Low | Normal | Normal-Low |
| ![param_line](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_line.svg?raw=true) | [Line](#line) | Low | Low | Normal | Normal-Low |
| ![param_cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_cubic.svg?raw=true) | [Cubic](#cubic) | High | High | Normal | Normal-Low |
| ![param_triangles](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_triangles.svg?raw=true) | [Triangles](#triangles) | High | Normal | Normal | Normal-Low |
| ![param_tri-hexagon](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_tri-hexagon.svg?raw=true) | [Tri-hexagon](#tri-hexagon) | High | Normal-High | Normal | Normal-Low |
| ![param_gyroid](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_gyroid.svg?raw=true) | [Gyroid](#gyroid) | High | High | Normal | Normal-High |
| ![param_tpmsd](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_tpmsd.svg?raw=true) | [TPMS-D](#tpms-d) | High | High | Normal | High |
| ![param_honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_honeycomb.svg?raw=true) | [Honeycomb](#honeycomb) | High | High | High | Ultra-High |
| ![param_adaptivecubic](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_adaptivecubic.svg?raw=true) | [Adaptive Cubic](#adaptive-cubic) | Normal-High | Normal-High | Low | Low |
| ![param_alignedrectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_alignedrectilinear.svg?raw=true) | [Aligned Rectilinear](#aligned-rectilinear) | Normal-Low | Normal | Normal | Normal-Low |
| ![param_2dhoneycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_2dhoneycomb.svg?raw=true) | [2D Honeycomb](#2d-honeycomb) | Normal-Low | Normal-Low | Normal | Normal-Low |
| ![param_3dhoneycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_3dhoneycomb.svg?raw=true) | [3D Honeycomb](#3d-honeycomb) | Normal-High | Normal-High | Normal-Low | High |
| ![param_hilbertcurve](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_hilbertcurve.svg?raw=true) | [Hilbert Curve](#hilbert-curve) | Low | Normal | Normal | High |
| ![param_archimedeanchords](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_archimedeanchords.svg?raw=true) | [Archimedean Chords](#archimedean-chords) | Low | Normal | Normal | Normal-Low |
| ![param_octagramspiral](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_octagramspiral.svg?raw=true) | [Octagram Spiral](#octagram-spiral) | Low | Normal | Normal | Normal |
| ![param_supportcubic](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_supportcubic.svg?raw=true) | [Support Cubic](#support-cubic) | Low | Low | Extra-Low | Extra-Low |
| ![param_lightning](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_lightning.svg?raw=true) | [Lightning](#lightning) | Low | Low | Ultra-Low | Ultra-Low |
| ![param_crosshatch](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_crosshatch.svg?raw=true) | [Cross Hatch](#cross-hatch) | Normal-High | Normal-High | Normal | Normal-High |
| ![param_quartercubic](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_quartercubic.svg?raw=true) | [Quarter Cubic](#quarter-cubic) | High | High | Normal | Normal-Low |
| ![param_zigzag](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_zigzag.svg?raw=true) | [Zig Zag](#zig-zag) | Normal-Low | Low | Normal | Normal |
| ![param_crosszag](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_crosszag.svg?raw=true) | [Cross Zag](#cross-zag) | Normal | Low | Normal | Normal |
| ![param_lockedzag](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_lockedzag.svg?raw=true) | [Locked Zag](#locked-zag) | Normal-Low | Normal-Low | Normal-High | Extra-High |
> [!NOTE]
> You can download [infill_desc_calculator.xlsx](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/print_settings/strength/infill_desc_calculator.xlsx?raw=true) used to calculate the values above.
@ -175,7 +213,7 @@ Fills the area with progressively smaller versions of the outer contour, creatin
### Rectilinear
Parallel lines spaced according to infill density. Each layer is printed perpendicular to the previous, resulting in low vertical bonding. Considere using new [Zig Zag](#zig-zag) infill instead.
Parallel lines spaced according to infill density. Each layer is printed perpendicular to the previous, resulting in low vertical bonding. Consider using new [Zig Zag](#zig-zag) infill instead.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Low
@ -201,7 +239,7 @@ Two-layer pattern of perpendicular lines, forming a grid. Overlapping points may
### 2D Lattice
Low-strength pattern with good flexibility. Angle 1 and angle 2 TBD.
Low-strength pattern with good flexibility. You can adjust **Angle 1** and **Angle 2** to optimize the infill for your specific model. Each angle adjusts the plane of each layer generated by the pattern. 0° is vertical.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Low
@ -266,7 +304,7 @@ Similar to the [triangles](#triangles) pattern but offset to prevent triple over
### Gyroid
Mathematical, isotropic surface providing equal strength in all directions. Excellent for strong, flexible prints and resin filling due to its interconnected structure.
Mathematical, isotropic surface providing equal strength in all directions. Excellent for strong, flexible prints and resin filling due to its interconnected structure. This pattern may require more time to slice because of all the points needed to generate each curve. If your model has complex geometry, consider using a simpler infill pattern like [TPMS-D](#tpms-d) or [Cross Hatch](#cross-hatch).
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
@ -279,7 +317,7 @@ Mathematical, isotropic surface providing equal strength in all directions. Exce
### TPMS-D
Triply Periodic Minimal Surface - D. Hybrid between [Cross Hatch](#cross-hatch) and [Gyroid](#gyroid), combining rigidity and smooth transitions. Isotropic and strong in all directions.
Triply Periodic Minimal Surface (Schwarz Diamond). Hybrid between [Cross Hatch](#cross-hatch) and [Gyroid](#gyroid), combining rigidity and smooth transitions. Isotropic and strong in all directions. This geometry is faster to slice than Gyroid, but slower than Cross Hatch.
- **Horizontal Strength (X-Y):** High
- **Vertical Strength (Z):** High
@ -332,7 +370,7 @@ Recommended with layer anchoring to improve not perpendicular strength.
### 2D Honeycomb
Vertical Honeycomb pattern. Acceptable torsional stiffness. Developed for low densities structures like wings. Improve over [2D Lattice](#2d-lattice) offers same performance with lower densities.This infill includes a Overhang angle parameter to improve interlayer point of contact and reduce the risk of delamination.
Vertical Honeycomb pattern. Acceptable torsional stiffness. Developed for low densities structures like wings. Improve over [2D Lattice](#2d-lattice) offers same performance with lower densities.This infill includes a Overhang angle parameter to improve the point of contact between layers and reduce the risk of delamination.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Normal-Low
@ -345,7 +383,7 @@ Vertical Honeycomb pattern. Acceptable torsional stiffness. Developed for low de
### 3D Honeycomb
This infill tries to generate a printable honeycomb structure by printing squares and octagons mantaining a vertical angle high enough to mantian contact with the previous layer.
This infill tries to generate a printable honeycomb structure by printing squares and octagons maintaining a vertical angle high enough to maintain contact with the previous layer.
- **Horizontal Strength (X-Y):** Normal-High
- **Vertical Strength (Z):** Normal-High
@ -425,6 +463,7 @@ Ultra-fast, ultra-low material infill. Designed for speed and efficiency, ideal
### Cross Hatch
Similar to [Gyroid](#gyroid) but with linear patterns, creating weak points at internal corners.
Easier to slice but consider using [TPMS-D](#tpms-d) or [Gyroid](#gyroid) for better strength and flexibility.
- **Horizontal Strength (X-Y):** Normal-High
- **Vertical Strength (Z):** Normal-High
@ -450,7 +489,7 @@ Similar to [Gyroid](#gyroid) but with linear patterns, creating weak points at i
### Zig Zag
Similar to [rectilinear](#rectilinear) with consistent pattern between layers. Allows you to add a Symmetric infil Y axis for models with two symmetric parts.
Similar to [rectilinear](#rectilinear) with consistent pattern between layers. Allows you to add a Symmetric infill Y axis for models with two symmetric parts.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Low
@ -461,9 +500,9 @@ Similar to [rectilinear](#rectilinear) with consistent pattern between layers. A
![infill-top-zig-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-zig-zag.png?raw=true)
### Coss Zag
### Cross Zag
Similar to [Zig Zag](#zig-zag) but displacing each lager with Infill shift step parammeter.
Similar to [Zig Zag](#zig-zag) but displacing each layer with Infill shift step parameter.
- **Horizontal Strength (X-Y):** Normal
- **Vertical Strength (Z):** Low
@ -472,11 +511,11 @@ Similar to [Zig Zag](#zig-zag) but displacing each lager with Infill shift step
- **Print Time:** Normal
- **Material/Time (Higher better):** Normal
![infill-top-coss-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-coss-zag.png?raw=true)
![infill-top-cross-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-zag.png?raw=true)
### Locked Zag
Adaptative version of [Zig Zag](#zig-zag) adding an external skin texture to interlock layers and a low material skeleton.
Adaptive version of [Zig Zag](#zig-zag) adding an external skin texture to interlock layers and a low material skeleton.
- **Horizontal Strength (X-Y):** Normal-Low
- **Vertical Strength (Z):** Normal-Low

View file

@ -2,10 +2,28 @@
Controls how the top and bottom solid layers (shells) are generated in the print.
- **Shells:** This is the number of solid layers of shell, including the surface layer. When the thickness calculated by this value is thinner than shell thickness, the shell layers will be increased.
- **Shell Thickness:** The number of solid layers is increased when slicing if the thickness calculated by shell layers is thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that this setting is disabled and thickness of shell is absolutely determined by shell layers.
- **Infill/Wall Overlap:** Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill.
- **Surface Pattern:** This setting controls the pattern of the surface. The options are:
![top-bottom-shells](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/top-bottom-shells/top-bottom-shells.png?raw=true)
## Shells Layers
This is the number of solid layers of shell, including the surface layer. When the thickness calculated by this value is thinner than shell thickness, the shell layers will be increased.
## Shell Thickness
The number of solid layers is increased when slicing if the thickness calculated by shell layers is thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that this setting is disabled and thickness of shell is absolutely determined by shell layers.
## Surface Density
This setting controls the density of the top and bottom surfaces. A value of 100% means a solid surface, while lower values create a sparse surface. This can be used for esthetic purposes, gripping or making interfaces with the bed.
## Infill/Wall Overlap
Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill.
## Surface Pattern
This setting controls the pattern of the surface. The options are:
- **Concentric:** Fills the surface with inward-tracing loops that follow the outer contour.
- **Rectilinear:** Fills the surface with straight lines alternating direction per layer.
- **Monotonic:** Prints lines in a uniform direction for a smoother visual surface.

View file

@ -0,0 +1,17 @@
# Walls
In 3D printing, "walls" refer to the outer layers of a printed object that provide its shape and structural integrity. Adjusting wall settings can significantly affect the strength, appearance, and print time of your model.
## Wall loops
"Wall loops" refers to the number of times the outer wall is printed in a loop. Increasing the wall loops can improve the strength and durability of the print, but may also increase print time.
## Alternate extra wall
This setting adds an extra wall to every other layer. This way the infill gets wedged vertically between the walls, resulting in stronger prints.
When this option is enabled, the ensure vertical shell thickness option needs to be disabled.
Using lightning infill together with this option is not recommended as there is limited infill to anchor the extra perimeters to.
## Detect thin wall
Detect thin wall which can't contain two line width. And use single line to print. Maybe printed not very well, because it's not closed loop.

View file

@ -0,0 +1,67 @@
# Support Advanced
- [Z distance](#z-distance)
- [Support wall loops](#support-wall-loops)
- [Base Pattern](#base-pattern)
- [Base pattern spacing](#base-pattern-spacing)
- [Pattern angle](#pattern-angle)
- [Interface layers](#interface-layers)
- [Interface pattern](#interface-pattern)
- [Interface spacing](#interface-spacing)
- [Normal support expansion](#normal-support-expansion)
- [Support/object XY distance](#supportobject-xy-distance)
- [Support/object first layer gap](#supportobject-first-layer-gap)
- [Don't support bridges](#dont-support-bridges)
- [Independent support layer height](#independent-support-layer-height)
## Z distance
The Z gap between support interface and object.
## Support wall loops
This setting specifies the count of support walls in the range of [0,2]. 0 means auto.
## Base Pattern
Line pattern for the base of the support.
### Base pattern spacing
Spacing between support lines.
## Pattern angle
Use this setting to rotate the support pattern on the horizontal plane.
## Interface layers
The number of interface layers.
## Interface pattern
The pattern used for the support interface.
## Interface spacing
Spacing of interface lines. Zero means solid interface.
## Normal support expansion
Expand (+) or shrink (-) the horizontal span of normal support.
## Support/object XY distance
XY separation between an object and its support.
## Support/object first layer gap
XY separation between an object and its support at the first layer.
## Don't support bridges
Don't support the whole bridge area which make support very large. Bridges can usually be printed directly without support if not very long.
## Independent support layer height
Support layer uses layer height independent with object layer. This is to support customizing z-gap and save print time. This option will be invalid when the prime tower is enabled.

View file

@ -0,0 +1,15 @@
# Support Filament
Support filament settings allow you to customize the material used for support structures in your 3D prints. This can include settings for the base layer, interface, and support style.
## Base
Filament to print support base and raft. "Default" means no specific filament for support and current filament is used.
## Interface
Filament to print support interface. "Default" means no specific filament for support interface and current filament is used.
### Avoid interface filament for base
Avoid using support interface filament to print support base if possible.

View file

@ -0,0 +1,15 @@
# Support Ironing
Ironing is using small flow to print on same height of surface again to make flat surface more smooth. This setting controls which layer being ironed.
## Pattern
Select the ironing pattern to use.
## Flow
The amount of material to extrude during ironing. Relative to flow of normal layer height. Too high value results in overextrusion on the surface.
## Line Spacing
The distance between the lines of ironing.

View file

@ -0,0 +1,11 @@
# Raft
Raft is a base layer that is printed under the object to improve adhesion and prevent warping. It consists of multiple layers of material that create a stable foundation for the print.
## Layers
Object will be raised by this number of support layers.
## Contact Z distance
Z gap between object and raft. Ignored for soluble interface.

View file

@ -0,0 +1,100 @@
# Support
Support structures are used in 3D printing to provide stability to overhangs and complex geometries.
- [Type](#type)
- [Normal](#normal)
- [Tree](#tree)
- [Support critical regions only](#support-critical-regions-only)
- [Auto](#auto)
- [Manual](#manual)
- [Style](#style)
- [Grid](#grid)
- [Snug](#snug)
- [Organic](#organic)
- [Tree Slim](#tree-slim)
- [Tree Strong](#tree-strong)
- [Tree Hybrid](#tree-hybrid)
- [Threshold angle](#threshold-angle)
- [Threshold overlap](#threshold-overlap)
- [Initial layer density](#initial-layer-density)
- [Initial layer expansion](#initial-layer-expansion)
- [On build plate only](#on-build-plate-only)
- [Remove small overhangs](#remove-small-overhangs)
## Type
Support structures can be generated in various styles, each suited for different printing needs:
### Normal
Normal support structures are generated in a grid pattern, providing a stable base for overhangs and complex geometries.
### Tree
Tree-like support structures are designed to minimize material usage while still providing adequate support. They branch out from a central trunk, allowing for more efficient printing.
#### Support critical regions only
Only create support for critical regions including sharp tail, cantilever, etc.
### Auto
Automatically generates support structures where needed, based on the model's geometry and overhangs and manual placement in the prepare view.
### Manual
Limit support generation to specific areas defined by manual placement in the prepare view.
## Style
Style and shape of the support.
### Grid
Default in normal support, projecting the supports into a regular grid will create more stable supports.
### Snug
Snug support towers will save material and reduce object scarring.
### Organic
Default style for tree support, which merges slim and organic style branches more aggressively and saves material.
### Tree Slim
Slim tree support branches are designed to be more delicate and use less material while still providing adequate support.
### Tree Strong
Strong tree support branches are designed to be more robust and provide additional support for heavier overhangs.
### Tree Hybrid
Create similar structure to normal support under large flat overhangs.
## Threshold angle
Support will be generated for overhangs whose slope angle is below the threshold.
## Threshold overlap
If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold.
The smaller this value is, the steeper the overhang that can be printed without support.
## Initial layer density
Density of the first raft or support layer.
## Initial layer expansion
Expand the first raft or support layer to improve bed plate adhesion.
## On build plate only
Don't create support on model surface, only on build plate.
## Remove small overhangs
Remove small overhangs that possibly need no supports.

View file

@ -0,0 +1,31 @@
# Tree Support
This section contains specific settings for tree support structures.
## Tip Diameter
Branch tip diameter for organic supports.
## Branch Distance
This setting determines the distance between neighboring tree support nodes.
## Branch Density
Adjusts the density of the support structure used to generate the tips of the branches. A higher value results in better overhangs but the supports are harder to remove, thus it is recommended to enable top support interfaces instead of a high branch density value if dense interfaces are needed.
## Branch Diameter
This setting determines the initial diameter of support nodes.
## Branch Diameter Angle
The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the organic support.
## Branch Angle
This setting determines the maximum overhang angle that the branches of tree support are allowed to make. If the angle is increased, the branches can be printed more horizontally, allowing them to reach farther.
### Preferred Branch Angle
The preferred angle of the branches, when they do not have to avoid the model. Use a lower angle to make them more vertical and more stable. Use a higher angle for branches to merge faster.

View file

@ -8,7 +8,7 @@ The implementation is designed to be straightforward, requiring no additional pl
![ABM-PrinterConfig](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png?raw=true)
## Settings in Orca Slicer:
## Settings in Orca Slicer
`Bed mesh min`: This option sets the min point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which means there are no limits, thus allowing probing across the entire bed.
@ -31,16 +31,16 @@ The implementation is designed to be straightforward, requiring no additional pl
`ALGORITHM`: Identifies the algorithm used for adaptive bed mesh interpolation. This variable is useful for Klipper users. If bed_mesh_probe_count is less than 4, the algorithm is set to `lagrange`. Otherwise, it is set to `bicubic`.
## Example of Adaptive Bed Mesh usage in Orca Slicer:
## Example of Adaptive Bed Mesh usage in Orca Slicer
### Marlin:
### Marlin
```gcode
; Marlin don't support speicify the probe count yet, so we only specify the probe area
; Marlin don't support specify the probe count yet, so we only specify the probe area
G29 L{adaptive_bed_mesh_min[0]} R{adaptive_bed_mesh_max[0]} F{adaptive_bed_mesh_min[1]} B{adaptive_bed_mesh_max[1]} T V4
```
### Klipper:
### Klipper
```gcode
; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally
@ -48,7 +48,7 @@ G29 L{adaptive_bed_mesh_min[0]} R{adaptive_bed_mesh_max[0]} F{adaptive_bed_mesh_
BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0
```
### RRF:
### RRF
```gcode
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]}

View file

@ -2115,8 +2115,8 @@ void TabPrint::build()
optgroup = page->new_optgroup(L("Precision"), L"param_precision");
optgroup->append_single_option_line("slice_closing_radius");
optgroup->append_single_option_line("resolution");
optgroup->append_single_option_line("slice_closing_radius", "quality_settings_precision#slice-gap-closing-radius");
optgroup->append_single_option_line("resolution", "quality_settings_precision#resolution");
optgroup->append_single_option_line("enable_arc_fitting", "quality_settings_precision#arc-fitting");
optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#xy-compensation");
optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#xy-compensation");
@ -2124,17 +2124,17 @@ void TabPrint::build()
optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elefant-foot-compensation");
optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
optgroup->append_single_option_line("hole_to_polyhole");
optgroup->append_single_option_line("hole_to_polyhole_threshold");
optgroup->append_single_option_line("hole_to_polyhole_twisted");
optgroup->append_single_option_line("hole_to_polyhole", "quality_settings_precision#polyholes");
optgroup->append_single_option_line("hole_to_polyhole_threshold", "quality_settings_precision#polyholes");
optgroup->append_single_option_line("hole_to_polyhole_twisted", "quality_settings_precision#polyholes");
optgroup = page->new_optgroup(L("Ironing"), L"param_ironing");
optgroup->append_single_option_line("ironing_type", "parameter/ironing");
optgroup->append_single_option_line("ironing_pattern");
optgroup->append_single_option_line("ironing_flow");
optgroup->append_single_option_line("ironing_spacing");
optgroup->append_single_option_line("ironing_inset");
optgroup->append_single_option_line("ironing_angle");
optgroup->append_single_option_line("ironing_type", "quality_settings_ironing#type");
optgroup->append_single_option_line("ironing_pattern", "quality_settings_ironing#pattern");
optgroup->append_single_option_line("ironing_flow", "quality_settings_ironing#flow");
optgroup->append_single_option_line("ironing_spacing", "quality_settings_ironing#spacing");
optgroup->append_single_option_line("ironing_inset", "quality_settings_ironing#inset");
optgroup->append_single_option_line("ironing_angle", "quality_settings_ironing#angle");
optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
@ -2148,35 +2148,35 @@ void TabPrint::build()
optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#arachne");
optgroup = page->new_optgroup(L("Walls and surfaces"), L"param_wall_surface");
optgroup->append_single_option_line("wall_sequence");
optgroup->append_single_option_line("is_infill_first");
optgroup->append_single_option_line("wall_direction");
optgroup->append_single_option_line("print_flow_ratio");
optgroup->append_single_option_line("top_solid_infill_flow_ratio");
optgroup->append_single_option_line("bottom_solid_infill_flow_ratio");
optgroup->append_single_option_line("only_one_wall_top");
optgroup->append_single_option_line("min_width_top_surface");
optgroup->append_single_option_line("only_one_wall_first_layer");
optgroup->append_single_option_line("reduce_crossing_wall");
optgroup->append_single_option_line("max_travel_detour_distance");
optgroup->append_single_option_line("wall_sequence", "quality_settings_wall_and_surfaces#walls-printing-order");
optgroup->append_single_option_line("is_infill_first", "quality_settings_wall_and_surfaces#print-infill-first");
optgroup->append_single_option_line("wall_direction", "quality_settings_wall_and_surfaces#wall-loop-direction");
optgroup->append_single_option_line("print_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
optgroup->append_single_option_line("top_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
optgroup->append_single_option_line("bottom_solid_infill_flow_ratio", "quality_settings_wall_and_surfaces#surface-flow-ratio");
optgroup->append_single_option_line("only_one_wall_top", "quality_settings_wall_and_surfaces#only-one-wall");
optgroup->append_single_option_line("min_width_top_surface", "quality_settings_wall_and_surfaces#threshold");
optgroup->append_single_option_line("only_one_wall_first_layer", "quality_settings_wall_and_surfaces#only-one-wall");
optgroup->append_single_option_line("reduce_crossing_wall", "quality_settings_wall_and_surfaces#avoid-crossing-walls");
optgroup->append_single_option_line("max_travel_detour_distance", "quality_settings_wall_and_surfaces#max-detour-length");
optgroup->append_single_option_line("small_area_infill_flow_compensation", "small-area-infill-flow-compensation");
optgroup->append_single_option_line("small_area_infill_flow_compensation", "quality_settings_wall_and_surfaces#small-area-flow-compensation");
Option option = optgroup->get_option("small_area_infill_flow_compensation_model");
option.opt.full_width = true;
option.opt.is_code = true;
option.opt.height = 15;
optgroup->append_single_option_line(option, "small-area-infill-flow-compensation");
optgroup->append_single_option_line(option, "quality_settings_wall_and_surfaces#small-area-flow-compensation");
optgroup = page->new_optgroup(L("Bridging"), L"param_bridge");
optgroup->append_single_option_line("bridge_flow");
optgroup->append_single_option_line("internal_bridge_flow");
optgroup->append_single_option_line("bridge_density");
optgroup->append_single_option_line("internal_bridge_density");
optgroup->append_single_option_line("thick_bridges");
optgroup->append_single_option_line("thick_internal_bridges");
optgroup->append_single_option_line("enable_extra_bridge_layer");
optgroup->append_single_option_line("dont_filter_internal_bridges");
optgroup->append_single_option_line("counterbore_hole_bridging");
optgroup->append_single_option_line("bridge_flow", "quality_settings_bridging#flow-ratio");
optgroup->append_single_option_line("internal_bridge_flow", "quality_settings_bridging#flow-ratio");
optgroup->append_single_option_line("bridge_density", "quality_settings_bridging#bridge-density");
optgroup->append_single_option_line("internal_bridge_density", "quality_settings_bridging#bridge-density");
optgroup->append_single_option_line("thick_bridges", "quality_settings_bridging#thick-bridges");
optgroup->append_single_option_line("thick_internal_bridges", "quality_settings_bridging#thick-bridges");
optgroup->append_single_option_line("enable_extra_bridge_layer", "quality_settings_bridging#extra-bridge-layers");
optgroup->append_single_option_line("dont_filter_internal_bridges", "quality_settings_bridging#filter-out-small-internal-bridges");
optgroup->append_single_option_line("counterbore_hole_bridging", "quality_settings_bridging#bridge-counterbore-hole");
optgroup = page->new_optgroup(L("Overhangs"), L"param_overhang");
optgroup->append_single_option_line("detect_overhang_wall");
@ -2190,24 +2190,24 @@ void TabPrint::build()
page = add_options_page(L("Strength"), "custom-gcode_strength"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Walls"), L"param_wall");
optgroup->append_single_option_line("wall_loops");
optgroup->append_single_option_line("alternate_extra_wall");
optgroup->append_single_option_line("detect_thin_wall");
optgroup->append_single_option_line("wall_loops", "strength_settings_walls#wall-loop");
optgroup->append_single_option_line("alternate_extra_wall", "strength_settings_walls#alternate-extra-wall");
optgroup->append_single_option_line("detect_thin_wall", "strength_settings_walls#detect-thin-wall");
optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
optgroup->append_single_option_line("top_shell_layers", "strength_top-bottom_shells");
optgroup->append_single_option_line("top_shell_thickness", "strength_top-bottom_shells");
optgroup->append_single_option_line("top_surface_density", "strength_top-bottom_shells");
optgroup->append_single_option_line("top_surface_pattern", "strength_top-bottom_shells");
optgroup->append_single_option_line("bottom_shell_layers", "strength_top-bottom_shells");
optgroup->append_single_option_line("bottom_shell_thickness", "strength_top-bottom_shells");
optgroup->append_single_option_line("bottom_surface_density", "strength_top-bottom_shells");
optgroup->append_single_option_line("bottom_surface_pattern", "strength_top-bottom_shells");
optgroup->append_single_option_line("top_bottom_infill_wall_overlap", "strength_top-bottom_shells");
optgroup->append_single_option_line("top_shell_layers", "strength_settings_top_bottom_shells#shells-layers");
optgroup->append_single_option_line("top_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
optgroup->append_single_option_line("top_surface_density", "strength_settings_top_bottom_shells#surface-density");
optgroup->append_single_option_line("top_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
optgroup->append_single_option_line("bottom_shell_layers", "strength_settings_top_bottom_shells#shells-layers");
optgroup->append_single_option_line("bottom_shell_thickness", "strength_settings_top_bottom_shells#shell-thickness");
optgroup->append_single_option_line("bottom_surface_density", "strength_settings_top_bottom_shells#surface-density");
optgroup->append_single_option_line("bottom_surface_pattern", "strength_settings_top_bottom_shells#surface-pattern");
optgroup->append_single_option_line("top_bottom_infill_wall_overlap", "strength_settings_top_bottom_shells#infillwall-overlap");
optgroup = page->new_optgroup(L("Infill"), L"param_infill");
optgroup->append_single_option_line("sparse_infill_density", "strength_settings_infill#sparse-infill-density");
optgroup->append_single_option_line("fill_multiline"); // fill multiline
optgroup->append_single_option_line("fill_multiline", "strength_settings_infill##fill-multiline");
optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern");
optgroup->append_single_option_line("infill_direction", "strength_settings_infill#direction");
optgroup->append_single_option_line("sparse_infill_rotate_template", "strength_settings_infill#rotation");
@ -2233,36 +2233,36 @@ void TabPrint::build()
optgroup->append_single_option_line("infill_wall_overlap", "strength_settings_infill#infill-wall-overlap");
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
optgroup->append_single_option_line("bridge_angle");
optgroup->append_single_option_line("internal_bridge_angle"); // ORCA: Internal bridge angle override
optgroup->append_single_option_line("minimum_sparse_infill_area");
optgroup->append_single_option_line("infill_combination");
optgroup->append_single_option_line("infill_combination_max_layer_height");
optgroup->append_single_option_line("detect_narrow_internal_solid_infill");
optgroup->append_single_option_line("ensure_vertical_shell_thickness");
optgroup->append_single_option_line("bridge_angle", "strength_settings_advanced#bridge-infill-direction");
optgroup->append_single_option_line("internal_bridge_angle", "strength_settings_advanced#bridge-infill-direction"); // ORCA: Internal bridge angle override
optgroup->append_single_option_line("minimum_sparse_infill_area", "strength_settings_advanced#minimum-sparse-infill-threshold");
optgroup->append_single_option_line("infill_combination", "strength_settings_advanced#infill-combination");
optgroup->append_single_option_line("infill_combination_max_layer_height", "strength_settings_advanced#max-layer-height");
optgroup->append_single_option_line("detect_narrow_internal_solid_infill", "strength_settings_advanced#detect-narrow-internal-solid-infill");
optgroup->append_single_option_line("ensure_vertical_shell_thickness", "strength_settings_advanced#ensure-vertical-shell-thickness");
page = add_options_page(L("Speed"), "custom-gcode_speed"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Initial layer speed"), L"param_speed_first", 15);
optgroup->append_single_option_line("initial_layer_speed");
optgroup->append_single_option_line("initial_layer_infill_speed");
optgroup->append_single_option_line("initial_layer_travel_speed");
optgroup->append_single_option_line("slow_down_layers");
optgroup->append_single_option_line("initial_layer_speed", "speed_settings_initial_layer_speed#initial-layer");
optgroup->append_single_option_line("initial_layer_infill_speed", "speed_settings_initial_layer_speed#initial-layer-infill");
optgroup->append_single_option_line("initial_layer_travel_speed", "speed_settings_initial_layer_speed#initial-layer-travel-speed");
optgroup->append_single_option_line("slow_down_layers", "speed_settings_initial_layer_speed#number-of-slow-layers");
optgroup = page->new_optgroup(L("Other layers speed"), L"param_speed", 15);
optgroup->append_single_option_line("outer_wall_speed");
optgroup->append_single_option_line("inner_wall_speed");
optgroup->append_single_option_line("small_perimeter_speed");
optgroup->append_single_option_line("small_perimeter_threshold");
optgroup->append_single_option_line("sparse_infill_speed");
optgroup->append_single_option_line("internal_solid_infill_speed");
optgroup->append_single_option_line("top_surface_speed");
optgroup->append_single_option_line("gap_infill_speed");
optgroup->append_single_option_line("ironing_speed");
optgroup->append_single_option_line("support_speed");
optgroup->append_single_option_line("support_interface_speed");
optgroup->append_single_option_line("outer_wall_speed", "speed_settings_other_layers_speed#outer-wall");
optgroup->append_single_option_line("inner_wall_speed", "speed_settings_other_layers_speed#inner-wall");
optgroup->append_single_option_line("small_perimeter_speed", "speed_settings_other_layers_speed#small-perimeters");
optgroup->append_single_option_line("small_perimeter_threshold", "speed_settings_other_layers_speed#small-perimeters-threshold");
optgroup->append_single_option_line("sparse_infill_speed", "speed_settings_other_layers_speed#sparse-infill");
optgroup->append_single_option_line("internal_solid_infill_speed", "speed_settings_other_layers_speed#internal-solid-infill");
optgroup->append_single_option_line("top_surface_speed", "speed_settings_other_layers_speed#top-surface");
optgroup->append_single_option_line("gap_infill_speed", "speed_settings_other_layers_speed#gap-infill");
optgroup->append_single_option_line("ironing_speed", "speed_settings_other_layers_speed#ironing-speed");
optgroup->append_single_option_line("support_speed", "speed_settings_other_layers_speed#support");
optgroup->append_single_option_line("support_interface_speed", "speed_settings_other_layers_speed#support-interface");
optgroup = page->new_optgroup(L("Overhang speed"), L"param_overhang_speed", 15);
optgroup->append_single_option_line("enable_overhang_speed", "slow-down-for-overhang");
optgroup->append_single_option_line("enable_overhang_speed", "speed_settings_overhang_speed#slow-down-for-overhang");
optgroup->append_single_option_line("slowdown_for_curled_perimeters");
optgroup->append_single_option_line("slowdown_for_curled_perimeters", "speed_settings_overhang_speed#slow-down-for-curled-perimeters");
Line line = { L("Overhang speed"), L("This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used") };
line.label_path = "slow-down-for-overhang";
line.append_option(optgroup->get_option("overhang_1_4_speed"));
@ -2277,215 +2277,215 @@ void TabPrint::build()
optgroup->append_line(line);
optgroup = page->new_optgroup(L("Travel speed"), L"param_travel_speed", 15);
optgroup->append_single_option_line("travel_speed");
optgroup->append_single_option_line("travel_speed", "speed_settings_travel");
optgroup = page->new_optgroup(L("Acceleration"), L"param_acceleration", 15);
optgroup->append_single_option_line("default_acceleration");
optgroup->append_single_option_line("outer_wall_acceleration");
optgroup->append_single_option_line("inner_wall_acceleration");
optgroup->append_single_option_line("bridge_acceleration");
optgroup->append_single_option_line("sparse_infill_acceleration");
optgroup->append_single_option_line("internal_solid_infill_acceleration");
optgroup->append_single_option_line("initial_layer_acceleration");
optgroup->append_single_option_line("top_surface_acceleration");
optgroup->append_single_option_line("travel_acceleration");
optgroup->append_single_option_line("accel_to_decel_enable");
optgroup->append_single_option_line("accel_to_decel_factor");
optgroup->append_single_option_line("default_acceleration", "speed_settings_acceleration#normal-printing");
optgroup->append_single_option_line("outer_wall_acceleration", "speed_settings_acceleration#outer-wall");
optgroup->append_single_option_line("inner_wall_acceleration", "speed_settings_acceleration#inner-wall");
optgroup->append_single_option_line("bridge_acceleration", "speed_settings_acceleration#bridge");
optgroup->append_single_option_line("sparse_infill_acceleration", "speed_settings_acceleration#sparse-infill");
optgroup->append_single_option_line("internal_solid_infill_acceleration", "speed_settings_acceleration#internal-solid-infill");
optgroup->append_single_option_line("initial_layer_acceleration", "speed_settings_acceleration#initial-layer");
optgroup->append_single_option_line("top_surface_acceleration", "speed_settings_acceleration#top-surface");
optgroup->append_single_option_line("travel_acceleration", "speed_settings_acceleration#travel");
optgroup->append_single_option_line("accel_to_decel_enable", "speed_settings_acceleration");
optgroup->append_single_option_line("accel_to_decel_factor", "speed_settings_acceleration");
optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_jerk", 15);
optgroup->append_single_option_line("default_jerk");
optgroup->append_single_option_line("outer_wall_jerk");
optgroup->append_single_option_line("inner_wall_jerk");
optgroup->append_single_option_line("infill_jerk");
optgroup->append_single_option_line("top_surface_jerk");
optgroup->append_single_option_line("initial_layer_jerk");
optgroup->append_single_option_line("travel_jerk");
optgroup->append_single_option_line("default_junction_deviation");
optgroup->append_single_option_line("default_jerk", "speed_settings_jerk_xy#default");
optgroup->append_single_option_line("outer_wall_jerk", "speed_settings_jerk_xy#outer-wall");
optgroup->append_single_option_line("inner_wall_jerk", "speed_settings_jerk_xy#inner-wall");
optgroup->append_single_option_line("infill_jerk", "speed_settings_jerk_xy#infill");
optgroup->append_single_option_line("top_surface_jerk", "speed_settings_jerk_xy#top-surface");
optgroup->append_single_option_line("initial_layer_jerk", "speed_settings_jerk_xy#initial-layer");
optgroup->append_single_option_line("travel_jerk", "speed_settings_jerk_xy#travel");
optgroup->append_single_option_line("default_junction_deviation", "speed_settings_jerk_xy#junction-deviation");
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_settings_extrusion_rate_smoothing");
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_settings_extrusion_rate_smoothing");
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_settings_extrusion_rate_smoothing");
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "speed_settings_advanced");
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "speed_settings_advanced");
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "speed_settings_advanced");
page = add_options_page(L("Support"), "custom-gcode_support"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Support"), L"param_support");
optgroup->append_single_option_line("enable_support", "support");
optgroup->append_single_option_line("support_type", "support#support-types");
optgroup->append_single_option_line("support_style", "support#support-styles");
optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle");
optgroup->append_single_option_line("support_threshold_overlap", "support#threshold-angle");
optgroup->append_single_option_line("raft_first_layer_density");
optgroup->append_single_option_line("raft_first_layer_expansion");
optgroup->append_single_option_line("support_on_build_plate_only");
optgroup->append_single_option_line("support_critical_regions_only");
optgroup->append_single_option_line("support_remove_small_overhang");
//optgroup->append_single_option_line("enforce_support_layers");
optgroup->append_single_option_line("enable_support", "support_settings_support");
optgroup->append_single_option_line("support_type", "support_settings_support#type");
optgroup->append_single_option_line("support_style", "support_settings_support#style");
optgroup->append_single_option_line("support_threshold_angle", "support_settings_support#threshold-angle");
optgroup->append_single_option_line("support_threshold_overlap", "support_settings_support#threshold-overlap");
optgroup->append_single_option_line("raft_first_layer_density", "support_settings_support#initial-layer-density");
optgroup->append_single_option_line("raft_first_layer_expansion", "support_settings_support#initial-layer-expansion");
optgroup->append_single_option_line("support_on_build_plate_only", "support_settings_support#on-build-plate-only");
optgroup->append_single_option_line("support_critical_regions_only", "support_settings_support#support-critical-regions-only");
optgroup->append_single_option_line("support_remove_small_overhang", "support_settings_support#remove-small-overhangs");
//optgroup->append_single_option_line("enforce_support_layers", "support_settings_support");
optgroup = page->new_optgroup(L("Raft"), L"param_raft");
optgroup->append_single_option_line("raft_layers");
optgroup->append_single_option_line("raft_contact_distance");
optgroup->append_single_option_line("raft_layers", "support_settings_raft");
optgroup->append_single_option_line("raft_contact_distance", "support_settings_raft");
optgroup = page->new_optgroup(L("Support filament"), L"param_support_filament");
optgroup->append_single_option_line("support_filament", "support#support-filament");
optgroup->append_single_option_line("support_interface_filament", "support#support-filament");
optgroup->append_single_option_line("support_interface_not_for_body", "support#support-filament");
optgroup->append_single_option_line("support_filament", "support_settings_filament#base");
optgroup->append_single_option_line("support_interface_filament", "support_settings_filament#interface");
optgroup->append_single_option_line("support_interface_not_for_body", "support_settings_filament#avoid-interface-filament-for-base");
optgroup = page->new_optgroup(L("Support ironing"), L"param_ironing");
optgroup->append_single_option_line("support_ironing");
optgroup->append_single_option_line("support_ironing_pattern");
optgroup->append_single_option_line("support_ironing_flow");
optgroup->append_single_option_line("support_ironing_spacing");
optgroup->append_single_option_line("support_ironing", "support_settings_ironing");
optgroup->append_single_option_line("support_ironing_pattern", "support_settings_ironing#pattern");
optgroup->append_single_option_line("support_ironing_flow", "support_settings_ironing#flow");
optgroup->append_single_option_line("support_ironing_spacing", "support_settings_ironing#line-spacing");
//optgroup = page->new_optgroup(L("Options for support material and raft"));
// Support
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
optgroup->append_single_option_line("support_top_z_distance", "support#top-z-distance");
optgroup->append_single_option_line("support_bottom_z_distance", "support#bottom-z-distance");
optgroup->append_single_option_line("tree_support_wall_count");
optgroup->append_single_option_line("support_base_pattern", "support#base-pattern");
optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern");
optgroup->append_single_option_line("support_angle");
optgroup->append_single_option_line("support_interface_top_layers", "support#base-pattern");
optgroup->append_single_option_line("support_interface_bottom_layers", "support#base-pattern");
optgroup->append_single_option_line("support_interface_pattern", "support#base-pattern");
optgroup->append_single_option_line("support_interface_spacing", "support#base-pattern");
optgroup->append_single_option_line("support_bottom_interface_spacing");
optgroup->append_single_option_line("support_expansion", "support#base-pattern");
//optgroup->append_single_option_line("support_interface_loop_pattern");
optgroup->append_single_option_line("support_top_z_distance", "support_settings_advanced#z-distance");
optgroup->append_single_option_line("support_bottom_z_distance", "support_settings_advanced#z-distance");
optgroup->append_single_option_line("tree_support_wall_count", "support_settings_advanced#support-wall-loops");
optgroup->append_single_option_line("support_base_pattern", "support_settings_advanced#base-pattern");
optgroup->append_single_option_line("support_base_pattern_spacing", "support_settings_advanced#base-pattern-spacing");
optgroup->append_single_option_line("support_angle", "support_settings_advanced#pattern-angle");
optgroup->append_single_option_line("support_interface_top_layers", "support_settings_advanced#interface-layers");
optgroup->append_single_option_line("support_interface_bottom_layers", "support_settings_advanced#interface-layers");
optgroup->append_single_option_line("support_interface_pattern", "support_settings_advanced#interface-pattern");
optgroup->append_single_option_line("support_interface_spacing", "support_settings_advanced#interface-spacing");
optgroup->append_single_option_line("support_bottom_interface_spacing", "support_settings_advanced#interface-spacing");
optgroup->append_single_option_line("support_expansion", "support_settings_advanced#normal-support-expansion");
//optgroup->append_single_option_line("support_interface_loop_pattern", "support_settings_advanced");
optgroup->append_single_option_line("support_object_xy_distance", "support");
optgroup->append_single_option_line("support_object_first_layer_gap", "support");
optgroup->append_single_option_line("bridge_no_support", "support#base-pattern");
optgroup->append_single_option_line("max_bridge_length", "support#tree-support-only-options");
optgroup->append_single_option_line("independent_support_layer_height", "support");
optgroup->append_single_option_line("support_object_xy_distance", "support_settings_advanced#supportobject-xy-distance");
optgroup->append_single_option_line("support_object_first_layer_gap", "support_settings_advanced#supportobject-first-layer-gap");
optgroup->append_single_option_line("bridge_no_support", "support_settings_advanced#dont-support-bridges");
optgroup->append_single_option_line("max_bridge_length", "support_settings_advanced");
optgroup->append_single_option_line("independent_support_layer_height", "support_settings_advanced#independent-support-layer-height");
optgroup = page->new_optgroup(L("Tree supports"), L"param_support_tree");
optgroup->append_single_option_line("tree_support_tip_diameter");
optgroup->append_single_option_line("tree_support_branch_distance", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_branch_distance_organic", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_top_rate");
optgroup->append_single_option_line("tree_support_branch_diameter", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_branch_diameter_organic", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_branch_diameter_angle");
optgroup->append_single_option_line("tree_support_branch_angle", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_branch_angle_organic", "support#tree-support-only-options");
optgroup->append_single_option_line("tree_support_angle_slow");
optgroup->append_single_option_line("tree_support_adaptive_layer_height");
optgroup->append_single_option_line("tree_support_auto_brim");
optgroup->append_single_option_line("tree_support_brim_width");
optgroup->append_single_option_line("tree_support_tip_diameter", "support_settings_tree#tip-diameter");
optgroup->append_single_option_line("tree_support_branch_distance", "support_settings_tree#branch-distance");
optgroup->append_single_option_line("tree_support_branch_distance_organic", "support_settings_tree#branch-distance");
optgroup->append_single_option_line("tree_support_top_rate", "support_settings_tree#branch-density");
optgroup->append_single_option_line("tree_support_branch_diameter", "support_settings_tree#branch-diameter");
optgroup->append_single_option_line("tree_support_branch_diameter_organic", "support_settings_tree#branch-diameter");
optgroup->append_single_option_line("tree_support_branch_diameter_angle", "support_settings_tree#branch-diameter-angle");
optgroup->append_single_option_line("tree_support_branch_angle", "support_settings_tree#branch-angle");
optgroup->append_single_option_line("tree_support_branch_angle_organic", "support_settings_tree#branch-angle");
optgroup->append_single_option_line("tree_support_angle_slow", "support_settings_tree#preferred-branch-angle");
optgroup->append_single_option_line("tree_support_adaptive_layer_height", "support_settings_tree");
optgroup->append_single_option_line("tree_support_auto_brim", "support_settings_tree");
optgroup->append_single_option_line("tree_support_brim_width", "support_settings_tree");
page = add_options_page(L("Multimaterial"), "custom-gcode_multi_material"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Prime tower"), L"param_tower");
optgroup->append_single_option_line("enable_prime_tower");
optgroup->append_single_option_line("prime_tower_width");
optgroup->append_single_option_line("prime_volume");
optgroup->append_single_option_line("prime_tower_brim_width");
optgroup->append_single_option_line("wipe_tower_rotation_angle");
optgroup->append_single_option_line("wipe_tower_bridging");
optgroup->append_single_option_line("wipe_tower_extra_spacing");
optgroup->append_single_option_line("wipe_tower_extra_flow");
optgroup->append_single_option_line("wipe_tower_max_purge_speed");
optgroup->append_single_option_line("wipe_tower_wall_type");
optgroup->append_single_option_line("wipe_tower_cone_angle");
optgroup->append_single_option_line("wipe_tower_extra_rib_length");
optgroup->append_single_option_line("wipe_tower_rib_width");
optgroup->append_single_option_line("wipe_tower_fillet_wall");
optgroup->append_single_option_line("wipe_tower_no_sparse_layers");
optgroup->append_single_option_line("single_extruder_multi_material_priming");
optgroup->append_single_option_line("enable_prime_tower", "multimaterial_settings_prime_tower");
optgroup->append_single_option_line("prime_tower_width", "multimaterial_settings_prime_tower#width");
optgroup->append_single_option_line("prime_volume", "multimaterial_settings_prime_tower");
optgroup->append_single_option_line("prime_tower_brim_width", "multimaterial_settings_prime_tower#brim-width");
optgroup->append_single_option_line("wipe_tower_rotation_angle", "multimaterial_settings_prime_tower#wipe-tower-rotation-angle");
optgroup->append_single_option_line("wipe_tower_bridging", "multimaterial_settings_prime_tower#maximal-bridging-distance");
optgroup->append_single_option_line("wipe_tower_extra_spacing", "multimaterial_settings_prime_tower#wipe-tower-purge-lines-spacing");
optgroup->append_single_option_line("wipe_tower_extra_flow", "multimaterial_settings_prime_tower#extra-flow-for-purge");
optgroup->append_single_option_line("wipe_tower_max_purge_speed", "multimaterial_settings_prime_tower#maximum-wipe-tower-print-speed");
optgroup->append_single_option_line("wipe_tower_wall_type", "multimaterial_settings_prime_tower#wall-type");
optgroup->append_single_option_line("wipe_tower_cone_angle", "multimaterial_settings_prime_tower#stabilization-cone-apex-angle");
optgroup->append_single_option_line("wipe_tower_extra_rib_length", "multimaterial_settings_prime_tower#extra-rib-length");
optgroup->append_single_option_line("wipe_tower_rib_width", "multimaterial_settings_prime_tower#rib-width");
optgroup->append_single_option_line("wipe_tower_fillet_wall", "multimaterial_settings_prime_tower#fillet-wall");
optgroup->append_single_option_line("wipe_tower_no_sparse_layers", "multimaterial_settings_prime_tower#no-sparse-layers");
optgroup->append_single_option_line("single_extruder_multi_material_priming", "multimaterial_settings_prime_tower");
optgroup = page->new_optgroup(L("Filament for Features"), L"param_filament_for_features");
optgroup->append_single_option_line("wall_filament");
optgroup->append_single_option_line("sparse_infill_filament");
optgroup->append_single_option_line("solid_infill_filament");
optgroup->append_single_option_line("wipe_tower_filament");
optgroup->append_single_option_line("wall_filament", "multimaterial_settings_filament_for_features#walls");
optgroup->append_single_option_line("sparse_infill_filament", "multimaterial_settings_filament_for_features#infill");
optgroup->append_single_option_line("solid_infill_filament", "multimaterial_settings_filament_for_features#solid-infill");
optgroup->append_single_option_line("wipe_tower_filament", "multimaterial_settings_filament_for_features#wipe-tower");
optgroup = page->new_optgroup(L("Ooze prevention"), L"param_ooze_prevention");
optgroup->append_single_option_line("ooze_prevention");
optgroup->append_single_option_line("standby_temperature_delta");
optgroup->append_single_option_line("preheat_time");
optgroup->append_single_option_line("preheat_steps");
optgroup->append_single_option_line("ooze_prevention", "multimaterial_settings_ooze_prevention");
optgroup->append_single_option_line("standby_temperature_delta", "multimaterial_settings_ooze_prevention#temperature-variation");
optgroup->append_single_option_line("preheat_time", "multimaterial_settings_ooze_prevention#preheat-time");
optgroup->append_single_option_line("preheat_steps", "multimaterial_settings_ooze_prevention#preheat-steps");
optgroup = page->new_optgroup(L("Flush options"), L"param_flush");
optgroup->append_single_option_line("flush_into_infill", "reduce-wasting-during-filament-change#wipe-into-infill");
optgroup->append_single_option_line("flush_into_objects", "reduce-wasting-during-filament-change#wipe-into-object");
optgroup->append_single_option_line("flush_into_support", "reduce-wasting-during-filament-change#wipe-into-support-enabled-by-default");
optgroup->append_single_option_line("flush_into_infill", "multimaterial_settings_flush_options#flush-into-objects-infill");
optgroup->append_single_option_line("flush_into_objects", "multimaterial_settings_flush_options");
optgroup->append_single_option_line("flush_into_support", "multimaterial_settings_flush_options#flush-into-objects-support");
optgroup = page->new_optgroup(L("Advanced"), L"advanced");
optgroup->append_single_option_line("interlocking_beam");
optgroup->append_single_option_line("interface_shells");
optgroup->append_single_option_line("mmu_segmented_region_max_width");
optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth");
optgroup->append_single_option_line("interlocking_beam_width");
optgroup->append_single_option_line("interlocking_orientation");
optgroup->append_single_option_line("interlocking_beam_layer_count");
optgroup->append_single_option_line("interlocking_depth");
optgroup->append_single_option_line("interlocking_boundary_avoidance");
optgroup->append_single_option_line("interlocking_beam", "multimaterial_settings_advanced#interlocking-beam");
optgroup->append_single_option_line("interface_shells", "multimaterial_settings_advanced#interface-shells");
optgroup->append_single_option_line("mmu_segmented_region_max_width", "multimaterial_settings_advanced#maximum-width-of-segmented-region");
optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth", "multimaterial_settings_advanced#interlocking-depth-of-segmented-region");
optgroup->append_single_option_line("interlocking_beam_width", "multimaterial_settings_advanced#interlocking-beam-width");
optgroup->append_single_option_line("interlocking_orientation", "multimaterial_settings_advanced#interlocking-direction");
optgroup->append_single_option_line("interlocking_beam_layer_count", "multimaterial_settings_advanced#interlocking-beam-layers");
optgroup->append_single_option_line("interlocking_depth", "multimaterial_settings_advanced#interlocking-depth");
optgroup->append_single_option_line("interlocking_boundary_avoidance", "multimaterial_settings_advanced#interlocking-boundary-avoidance");
page = add_options_page(L("Others"), "custom-gcode_other"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Skirt"), L"param_skirt");
optgroup->append_single_option_line("skirt_loops");
optgroup->append_single_option_line("skirt_type");
optgroup->append_single_option_line("min_skirt_length");
optgroup->append_single_option_line("skirt_distance");
optgroup->append_single_option_line("skirt_start_angle");
optgroup->append_single_option_line("skirt_speed");
optgroup->append_single_option_line("skirt_height");
optgroup->append_single_option_line("draft_shield");
optgroup->append_single_option_line("single_loop_draft_shield");
optgroup->append_single_option_line("skirt_loops", "others_settings_skirt#loops");
optgroup->append_single_option_line("skirt_type", "others_settings_skirt#type");
optgroup->append_single_option_line("min_skirt_length", "others_settings_skirt#minimum-extrusion-length");
optgroup->append_single_option_line("skirt_distance", "others_settings_skirt#distance");
optgroup->append_single_option_line("skirt_start_angle", "others_settings_skirt#start-point");
optgroup->append_single_option_line("skirt_speed", "others_settings_skirt#speed");
optgroup->append_single_option_line("skirt_height", "others_settings_skirt#height");
optgroup->append_single_option_line("draft_shield", "others_settings_skirt#shield");
optgroup->append_single_option_line("single_loop_draft_shield", "others_settings_skirt#single-loop-after-first-layer");
optgroup = page->new_optgroup(L("Brim"), L"param_adhension");
optgroup->append_single_option_line("brim_type", "auto-brim");
optgroup->append_single_option_line("brim_width", "auto-brim#manual");
optgroup->append_single_option_line("brim_object_gap", "auto-brim#brim-object-gap");
optgroup->append_single_option_line("brim_ears_max_angle");
optgroup->append_single_option_line("brim_ears_detection_length");
optgroup->append_single_option_line("brim_type", "others_settings_brim#type");
optgroup->append_single_option_line("brim_width", "others_settings_brim#width");
optgroup->append_single_option_line("brim_object_gap", "others_settings_brim#brim-object-gap");
optgroup->append_single_option_line("brim_ears_max_angle", "others_settings_brim#ear-max-angle");
optgroup->append_single_option_line("brim_ears_detection_length", "others_settings_brim#ear-detection-radius");
optgroup = page->new_optgroup(L("Special mode"), L"param_special");
optgroup->append_single_option_line("slicing_mode");
optgroup->append_single_option_line("print_sequence", "sequent-print");
optgroup->append_single_option_line("print_order");
optgroup->append_single_option_line("spiral_mode", "spiral-vase");
optgroup->append_single_option_line("spiral_mode_smooth", "spiral-vase#smooth");
optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "spiral-vase#max-xy-smoothing");
optgroup->append_single_option_line("spiral_starting_flow_ratio", "spiral-vase#starting-flow-ratio");
optgroup->append_single_option_line("spiral_finishing_flow_ratio", "spiral-vase#finishing-flow-ratio");
optgroup->append_single_option_line("slicing_mode", "others_settings_special_mode#slicing-mode");
optgroup->append_single_option_line("print_sequence", "others_settings_special_mode#print-sequence");
optgroup->append_single_option_line("print_order", "others_settings_special_mode#intra-layer-order");
optgroup->append_single_option_line("spiral_mode", "others_settings_special_mode#spiral-vase");
optgroup->append_single_option_line("spiral_mode_smooth", "others_settings_special_mode#smooth-spiral");
optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "others_settings_special_mode#max-xy-smoothing");
optgroup->append_single_option_line("spiral_starting_flow_ratio", "others_settings_special_mode#spiral-starting-flow-ratio");
optgroup->append_single_option_line("spiral_finishing_flow_ratio", "others_settings_special_mode#spiral-finishing-flow-ratio");
optgroup->append_single_option_line("timelapse_type", "Timelapse");
optgroup->append_single_option_line("timelapse_type", "others_settings_special_mode#timelapse");
optgroup->append_single_option_line("fuzzy_skin");
optgroup->append_single_option_line("fuzzy_skin_noise_type");
optgroup->append_single_option_line("fuzzy_skin_point_distance");
optgroup->append_single_option_line("fuzzy_skin_thickness");
optgroup->append_single_option_line("fuzzy_skin_scale");
optgroup->append_single_option_line("fuzzy_skin_octaves");
optgroup->append_single_option_line("fuzzy_skin_persistence");
optgroup->append_single_option_line("fuzzy_skin_first_layer");
optgroup->append_single_option_line("fuzzy_skin", "others_settings_special_mode#fuzzy-skin");
optgroup->append_single_option_line("fuzzy_skin_noise_type", "others_settings_special_mode#fuzzy-skin-mode");
optgroup->append_single_option_line("fuzzy_skin_point_distance", "others_settings_special_mode#point-distance");
optgroup->append_single_option_line("fuzzy_skin_thickness", "others_settings_special_mode#skin-thickness");
optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_special_mode#skin-feature-size");
optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_special_mode#skin-noise-octaves");
optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_special_mode#skin-noise-persistence");
optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_special_mode#apply-fuzzy-skin-to-first-layer");
optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
optgroup->append_single_option_line("reduce_infill_retraction");
optgroup->append_single_option_line("gcode_add_line_number");
optgroup->append_single_option_line("gcode_comments");
optgroup->append_single_option_line("gcode_label_objects");
optgroup->append_single_option_line("exclude_object");
optgroup->append_single_option_line("reduce_infill_retraction", "others_settings_g_code_output#reduce-infill-retraction");
optgroup->append_single_option_line("gcode_add_line_number", "others_settings_g_code_output#add-line-number");
optgroup->append_single_option_line("gcode_comments", "others_settings_g_code_output#verbose-g-code");
optgroup->append_single_option_line("gcode_label_objects", "others_settings_g_code_output#label-objects");
optgroup->append_single_option_line("exclude_object", "others_settings_g_code_output#exclude-objects");
option = optgroup->get_option("filename_format");
// option.opt.full_width = true;
option.opt.is_code = true;
option.opt.multiline = true;
// option.opt.height = 5;
optgroup->append_single_option_line(option);
optgroup->append_single_option_line(option, "others_settings_g_code_output#filename-format");
optgroup = page->new_optgroup(L("Post-processing Scripts"), L"param_gcode", 0);
option = optgroup->get_option("post_process");
option.opt.full_width = true;
option.opt.is_code = true;
option.opt.height = 15;
optgroup->append_single_option_line(option);
optgroup->append_single_option_line(option, "others_settings_post_processing_scripts");
optgroup = page->new_optgroup(L("Notes"), "note", 0);
option = optgroup->get_option("notes");
option.opt.full_width = true;
option.opt.height = 25;//250;
optgroup->append_single_option_line(option);
optgroup->append_single_option_line(option, "others_settings_notes");
// Orca: hide the dependencies tab for process for now. The UI is not ready yet.
// page = add_options_page(L("Dependencies"), "param_profile_dependencies"); // icons ready