mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-23 06:33:57 -06:00
Wiki Update part 4 (#9872)
* How to wiki * Local images + pressure-advance realocation * fill patterns WIP + Patch Until they fix this: https://github.com/orgs/community/discussions/118296 * Wiki images update8fff1ca
Updated images with new style from commit8fff1ca
(pr: #9797) * Internal Wiki Links + standardization * Update Flow Calibration image Co-Authored-By: Dowsha3d <216038220+dowsha3d@users.noreply.github.com> * Seam wiki merge * Updated Wiki Home * MD Final lines * How to index --------- Co-authored-by: Dowsha3d <216038220+dowsha3d@users.noreply.github.com>
This commit is contained in:
parent
25785abfe0
commit
33dc7bc1f2
145 changed files with 636 additions and 409 deletions
|
@ -1,27 +1,27 @@
|
|||
This page deals with the explanation for 3 classes in the code.
|
||||
|
||||
## [`Preset`](../../src/libslic3r/Preset.hpp)
|
||||
## [`Preset`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp)
|
||||
|
||||
As the name might suggest this class deals with presets for various things. It defines an enum `Type` which basically tells you what kind of data the present contains. Below are a few explained and there corresponding UI elements
|
||||
|
||||
> [!Warning]
|
||||
> [!WARNING]
|
||||
> There is a lot of outdated and legacy code in the code base.
|
||||
|
||||
- `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code.
|
||||
|
||||
<img src="../images/process-preset.png" alt="Example Image" width="320">
|
||||

|
||||
|
||||
- `TYPE_FILAMENT`: As the name suggests this preset is for filaments
|
||||
|
||||
<img src="../images/filament-preset.png" alt="Example Image" width="320">
|
||||

|
||||
|
||||
- `TYPE_PRINTER`: Preset for printers.
|
||||
|
||||
<img src="../images/printer-preset.png" alt="Example Image" width="320">
|
||||

|
||||
|
||||
There are other preset types but some of them are for SLA. Which is legacy code, since SLA printers are no longer supported. Above 3 are the important types.
|
||||
|
||||
## [`PresetBundle`](../../src/libslic3r/PresetBundle.hpp)
|
||||
## [`PresetBundle`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/PresetBundle.hpp)
|
||||
|
||||
This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT).
|
||||
|
||||
|
@ -34,7 +34,7 @@ each one of these contains a collection of processes, filaments and printers res
|
|||
> [!IMPORTANT]
|
||||
> Printers, filaments and processes in the bundle don't all have to be compatible with each other. In fact all the saved presets are stored in one `PresetBundle`. The `PresetBundle` is loaded on start up. The list of filaments and processes shown for a particular printer is a subset of `filaments` and `prints` `PresetCollection`s.
|
||||
|
||||
## [`PresetCollection`](../../src/libslic3r/Preset.hpp)
|
||||
## [`PresetCollection`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp)
|
||||
|
||||
`PrinterPresetCollection` is a class derived from `PresetCollection`.
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@ Refers to the entire application. The whole view, file loading, project saving a
|
|||
|
||||
This is relating the the sidebar in the application window
|
||||
|
||||

|
||||

|
||||
|
||||
## [`ComboBox`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Widgets/ComboBox.hpp)
|
||||
|
||||
The drop down menus where you can see and select presets
|
||||
|
||||

|
||||

|
||||
|
||||
## [`Tab`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.hpp)
|
||||
|
||||
|
|
|
@ -2,4 +2,43 @@
|
|||
|
||||
The Slicing logic is not the easiest to locate in the code base. Below is a flow diagram of function calls that are made after clicking the `Slice Plate` button in the UI. Most of the processing happens in different threads. Note the calls after `BackgroundSlicingProcess::start()`, but this is how you can find the slicing logic.
|
||||
|
||||
<img src="../images/slicing_call_heirarchy.svg" alt="Example Image" width="320">
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A["Slice plate"] --> B["void Plater::priv::on_action_slice_plate(SimpleEvent&)"]
|
||||
B --> C["void Plater::reslice()"]
|
||||
C --> D["bool Plater::priv::restart_background_process(unsigned int state)"]
|
||||
D --> E["bool BackgroundSlicingProcess::start()"]
|
||||
E --> F["void BackgroundSlicingProcess::thread_proc_safe_seh_throw()"]
|
||||
F --> G["unsigned long BackgroundSlicingProcess::thread_proc_safe_seh()"]
|
||||
G --> H["void BackgroundSlicingProcess::thread_proc_safe()"]
|
||||
H --> I["void BackgroundSlicingProcess::thread_proc()"]
|
||||
I --> J["void BackgroundSlicingProcess::call_process_seh_throw(std::exception_ptr &ex)"]
|
||||
J --> K["unsigned long BackgroundSlicingProcess::call_process_seh(std::exception_ptr &ex)"]
|
||||
K --> L["void BackgroundSlicingProcess::call_process(std::exception_ptr &ex)"]
|
||||
L --> M["void BackgroundSlicingProcess::process_fff()"]
|
||||
M --> N["void Print::process(long long *time_cost_with_cache, bool use_cache)"]
|
||||
N --> O["void PrintObject::make_perimeters()"]
|
||||
O --> P["void PrintObject::slice()"]
|
||||
|
||||
%% Labels for libraries
|
||||
subgraph G1 [libSlic3r_gui]
|
||||
B
|
||||
C
|
||||
D
|
||||
E
|
||||
F
|
||||
G
|
||||
H
|
||||
I
|
||||
J
|
||||
K
|
||||
L
|
||||
M
|
||||
end
|
||||
|
||||
subgraph G2 [libSlic3r]
|
||||
N
|
||||
O
|
||||
P
|
||||
end
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue