# Description
fixed#6987
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
# Description
The idea behind this PR is to make it easier for the users to tweak
filament setting overrides i.e. reduce number of times users have to
switch between the printer and filament settings to compare the values.
# Screenshots/Recordings/Graphs




## Tests
I've done some manual testing to confirm:
* Override setting with the same value as extruder is still shown as a
change.
* Resetting unsaved override setting back to original value still works
as expected.
* Override settings are shown correctly on the next load after a save.
* Extruder settings changes are reflected on Settings Overrides page.
## Other
I have discovered a strange behaviour between `Filament Settings` and
`Printer Settings` windows. On a fresh load of application opening
`Filament Settings` window, navigating to `Settings Overrides` tab and
then closing the window results in `Filament` tab being opened the next
time `Filament Settings` window is opened. But if you open `Printer
settings` window, navigate to `Extruder` or `Motion ability` tabs then
the application changes the behaviour to open the last visited tab by
the user for both of the windows. I'm mentioning this because when this
happens the flow of events in the application changes and causes my
change to break until the user changes a tab. As far as I can tell for
some reason ConfigOptionsGroup's `reload_config` method is starting to
get called (second time?) after TabFilament's
`update_filament_overrides_page` method which wipes out the values set
by me. I'm not sure which is the correct behaviour, so I left that for a
discussion here. If last visited tab is the correct behaviour, then I
would need help to figure out how to fix this problem.
This PR moves the code around without any functional changes, so that all code related to supports now placed at the same location & structure as BambuStudio.
This makes merging updates from BambuStudio much easier in the future.
Resolves#5932
**The following changes made are made to all V-Core 4 versions**
- Improved cover's quality

- Added RatRig's PunkFil ABS, PETG, and PETG CF filaments
- Added PETG-CF10 filament type & RatRig to filament vendors
- Increased max z speed to 200 from 50 and max acceleration travel to
10,000 from 9,000
- Enabled wipe and z hop, as well as, increased retract before wipe to
70% from 0%
- Improved layer change G-Code
- Fixed pause G-Code
- Added extruder clearance parameters
*Almost all of these changes come from @nameisCruzCruz in #5932
…
# Description
This update, along with #6934, resolves the remaining issues with the
wipe tower.
The GCode class will no longer maintain its own Z height information
(m_nominal_z). Instead, it will utilize the Z height from GCodeWriter's
m_pos. This approach is less error-prone.
This PR also fixes#6755.
It also enforce "Enable Filament ramming" option
@igiannakas It should fix the wipe tower crashing issue
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
* Russian translation update
The next russian translation update OrcaSlicer V2.1.1 Official Release.
The work done to improve translation, corrected errors.
Thx.
* Russian translation update
The next russian translation update OrcaSlicer v2.2.0-beta2.
The work done to improve translation, corrected errors.
Thx.
* Russian translation update
The next russian translation update OrcaSlicer V2.2.0-beta2 + 3 lines in text.js
The work done to improve translation, corrected errors.
Thx.
* WIP:only works after saving and then reloading
* working version of move plate to the front
* added icons for move to front
* removed a commented line
* fixed the move to front function to behave correctly with undo/redo actions
* Merge branch 'main' into feature/move_plate_to_the_front
* One top wall fixes
* Use one wall threshold set in GUI without limiting
* Updates to one wall top perimeter to address splitting top surface against too small segments and lettering overlap.
* Fix precise wall
* Merge branch 'main' into one-top-wall-fix-pr
* Merge branch 'main' into one-top-wall-fix-pr
* Pass all compatible regions to perimeter generator
* Simplify & unify fuzzify detection
* Simplify `to_thick_polyline`
* Group regions by fuzzy skin settings
* Initial code structure of multi-regional fuzzy skin
* Determine fuzzy type by all compatible regions
* Add fuzzy region debug
* Implement the line split algorithm
* Do splitted fuzzy in classic mode
* Disable debug macros
* Fix infinit loop issue when segment points are out of order
* Fix path connection
* Implement splitted fuzzy in Arachne mode
* Translation of missing phrases into Russian. Part 1
* Translation of missing phrases into Russian. Part 2
* Returned special terms that do not require translation and corrected an error
* Update localization/i18n/ru/OrcaSlicer_ru.po
* Some fixes
* Removed unnecessary format check rules
ENH: support spiral lift with timelapse gcode
The existing implementation did only read the new Z position from the injected timelapse_gcode and flagged the position as unsafe because of this.
This change reads X, Y and Z pos from the timelapgse_gcode and will keep the position state correct to enable safety checks required for using spiral Z hop.
Because of this, spiral Z hop can be used everyhwere now. The same pattern is also applied for layer_change/toolhead gcode injection.
The set_current_position_clear method is unused but will be kept in implementation for future scenarios.
Co-authored-by: Simon ziehmon@users.noreply.github.com
* Fix issue that github action windows build could not find win10sdk (SoftFever/OrcaSlicer#6724)
* Another attempt to fix the build issue
* This should work now
* Delete Readme.txt
Not in use
* Update SECURITY.md
Formatted and little changes made
* Update README.md
Improved format and texts, insert image at the top
* Added `duplicate plate` feature.
This the initial commit and this still needs work.
* [#2025] Fixed the SEGFAULT, apparently an icon id=6 needed to be updated to id=7 as we have one more plate icon.
[#2025] Removed the `printf` statements.
* [#2025] Plate duplication is now fully implemented.
* [#2025] Updated icons for plate duplicate funcctionality.
* [#2025] Added toolbar icon fro "Duplicate Current Plate" action.
* [#2025] Revert changes for `toolbar_add_plate_dark.svg`.
* [#2025] Removed the `BBS` label in the code that is not written by BBS.
* [#2025] Updated `.gitignore` to ignore VSCode workspace file.
* [#2025] Fixed the instances not transforming in global space when the plate is duplicated.
* [#2025] Removed the Duplicate Plate action from the plate actions and the toolbar.
* [#2025] Added the `Duplicate Current Plate` functionality to the `Edit` menu.
* [#2025] Addressed review comments.
* [#2025] Addressed review comments.
* [#2025] Removed unused icons related to the previously introduced "Duplicate Plate" functionality.
* Fix issue that `fuzzy_skin_first_layer` not respected by classic wall generator
* Fix issue that Contour / Contour and hole mode not working properly (SoftFever/OrcaSlicer#6414)
* We have `is_contour`, so need for complicated hole detection
Including a marathon of resolving merge conflicts due to PRs today.
We should abolish multi-line msgids :-)
# Description
This looks like a huge PR, but it is only fixes for typos and grammar.
On the previous PR #6638 I mistakenly used _en.po as the reference
instead of the .pot.
It caused missed strings in the source and other .po files.
This around I triple checked again to make sure the msgids are in sync
with the L"" strings in the code.
Comments, variable names and non-English translation strings were
excluded.
I learnt that typos were "fixed" before by using translations. After
this PR, those translations are no longer relevant and can be cleaned
up.
Hopefully this sets a new baseline which will last us a while. :-)
<!--
> Please provide a summary of the changes made in this PR. Include
details such as:
> * What issue does this PR address or fix?
> * What new features or enhancements does this PR introduce?
> * Are there any breaking changes or dependencies that need to be
considered?
-->
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
The code compiled and ran successfully.
The translation files were verified with ./run_gettext.sh
I did not se any issues when running ./run_gettext.sh --full
Please confirm it again, before the merge.
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Profile created based on information contained in the printer's firmware and profiles recommended by the manufacturer for Cura. It has been tested on various parts including 3DBenchy with more than satisfactory results.
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Upodate OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Add new translations and update existin from merged PR 6543
* Small fix in new msgid in OrcaSlicer_es.po
* Fix string start and termination quotes
* Fix string length?
* Update check_locale.yml
* testing with turkish translation
* test format
* fix format issues
* Ported filament shrinkage compensation from Prusa Slicer. Updated logic to be 100 = no shrinkage to be consistent with orca definitions
* Code comments update
* Merge branch 'main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Merge remote-tracking branch 'upstream/main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Merge branch 'main' into Filament-Shrinkage-compension---port-from-Prusa-slicer
* Kingroon KLP1 profiles
* Kingroon KP3S V1 profiles
* Make cover png file size more reasonable
* copy/paste error in the profile name
* Merge branch 'main' into kingroon-klp1-profiles
- add Breakaway Support filament
- add preheat params for Snapmaker Dual/IDEX printers
- update the check bounds code in start-gcode, which is now off by default
* Make sure the speed tab is properly hidden when toggle off advance mode
* Clear each page before clearing the parent, otherwise the child pages will be destroyed twice
* Fix crash if current selected tab is positioned after the removed tab
* Fix issue that sometimes the printer config first page is not displayed
* Fix issue that the wrong tab item get bold if the number of tabs changed
* update flow rate calibration tests
* more tweaks
* add YOLO linear flow rate calibration
* update name
* revert line_width changes
* Make it 2mm thick and change some text
* Update YOLO test:
Normal YOLO for 0.01 step
Perfectionist YOLO for 0.005 step
* add space
* Wiki home page fix links and readme update to link to wiki
* Update README.md
* Fixed developer reference links
* Update linkage from slicer settings to Wiki for layer height, line width and seam settings
* adaptive PA documentation
* Update adaptive-pressure-advance.md
* updated screenshots
* formatting
* Update adaptive-pressure-advance.md
* Update adaptive-pressure-advance.md
* Update adaptive-pressure-advance.md
* Include adaptive PA link
* Fix crash due to the wrong window get returned in `PointCtrl` (SoftFever/OrcaSlicer#6261).
`getWindow()` must return the control itself, not its child control; otherwise the child control will be destroyed twice when the tab container is destroyed.
* Fix another crash on Linux caused by unused undo button
* Fix build with CGAL 5.6
Surface_mesh iterators no longer return references, so it's necessary to
use const references or copies when iterating.
This was previously merged in #3045 but isn't references in the
current main branch anymore. No idea where why it is gone, but the issue
still persists thus the patch should still be added.
* Fix linux deps debug build
* Use the same DL_CACHE for release build when building debug version of deps on Linux.
This prevents downloading the same source packages twice, and avoid downloading again after deleting the build dir.
* Fix debug build
* Fix warnings "loop variable creates a copy from type" and "loop variable binds to a temporary constructed from type"
* Improvements in Inner Outer Inner wall ordering logic
* Updated to BFS algorithm, made ordering more robust and corrected edge cases
* Doc updates
* Refinements in perimeter sorting
* Removal of touch threshold and code debugging to improve sequencing
* Code cleanup
* Code refinements on perimeter distance thresholds
* Extend perimeter re-ordering to more than inset index 2, to reduce travel moves when printing neighbouring features
* Refinements to IOI perimeter re-ordering algorithm to improve travel scenarios where multiple external perimeters are contained in the same island.
* Documentation updates
* Removed unnecessary code
* Removed bespoke to_points function and replaced with ExtrusionLine member already present. Removed squaredDistance and replaced with Eigen library call.
* Refactor code to move distancing functions to the multipoint class. Renamed for more clarity on their purpose.
* Added SBS to filament_info.json
* Added SBS to Print.cpp
* added SBS to PrintConfig.cpp
* Added SBS to BBL
* Added SBS Template and also specified SBS as type in fdm_filament_sbs.json
* Updated settings for SBS in filament_sbs_template.json
* Applied SBS settings to fdm_filament_sbs.json
* added settings to Generic SBS @base.json
---------
Co-authored-by: Duan Gauche <duan.gauche@pdsvision.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Revert "Fix #3311: filament Load / Unload time was not used in time estimation (#3706)"
This reverts commit 252788419b.
* revamp tool/filament change time
* tweak message
* Use more readable data types for storing triangle splitting information.
* fix build errors
* SPE-2063: Determine correctly which extruders are used when the object is painted by the multi-material painting gizmo.
During the serialization of TriangleSelector and also during reading serialized painting data from 3MF, we cache all used states in the painted triangle mesh.
Based on this information, we can quickly determine which extruders are used and which don't.
* Fixed an bug that filament list was not updated properly
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Fix z hop performed after retraction in PA pattern calibration. Fix zhop config value not used
* Updated gathering of z hop value method for consistency
* Fix -Wsubobject-linkage warning
Having tk::spline header-only implementation included from
SmallAreaInfillFlowCompensator.hpp makes
SmallAreaInfillFlowCompensator::flowModel have separate (albeit the
same) implementation in each translation unit.
In order to fix this issue, SmallAreaInfillFlowCompensator::flowModel
converted to opaque 'pimpl'
* spline: remove anonymous namespace
Remove outer anonymous namespace from splice.h to make
forward declaration for tk::spline possible.
* fix gizmo bar wobbling
Gizmo bar is wobbling at specific application window width range.
This comes from a bar scaling calculations method:
- new scale calculated for already scaled bar
- scale stored as application settings loosing precision
Rework gizmo bar resizing code to remove feedback:
- calculate scale factor based on unscaled bar size
* rework gizmo bar scaling
Unify scaling implementation across platforms (MacOS, Win, Linux).
Now all platform scale bar setting icon size.
Toolbar scale is used for high-DPI displays scaling only.
* Add comments, reorganize changes to minimize diff
* Fix crash when filling very tiny (1-5nm) gaps (#6279)
Cherry-picked from prusa3d/PrusaSlicer@8784ca0ecf
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* SPE-2256: Fix the issue that we used the old Voronoi graph during the detection of invalid Voronoi diagrams.
This happens because we didn't set a modified flag that is required to be set before we use the new Voronoi graph.
Possibly related to #12385
Cherry-picked from prusa3d/PrusaSlicer@2de1f3aa45
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
---------
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
* Supress warnings on unused functions an variables
Compilation of OrcaSlicer produces 3056 warnings.
Nearly half of them related to unused functions and variables.
It is unlikely we going to clean them up since we may want to
keep code base as close to the BBS as possible
* initialize class member with correct value
* Fix memset arguments order
* Merge multiple statemensts into single
* fix -Wpessimizing-move
* Increase granularity of extrusion move splitting for small line segments ending in an overhang
* Parameter tweak
* Increase granularity of estimation for curled perimeters
* Adjust parameters following experimentation with overhang prints
* Updated overhang segmentation logic
* Cleanup code comments
This PR:
- Updates translation template to include new messages from #6009 and
updates <s>existing translation files</s> Korean translation file
accordingly
- Updates Korean translation, including new translations for #6009
# Description
Copied files from BambuStudio after downloading updated profiles.
Add support for BambuLab PETG-HF and Support for ABS. Fixes#6182
Also contains some changes to the default infill from crosshatch to
gyroid, and updated start g-code for A1.
# Tests
Copied all files to resources directory on install, and started.
Profiles showed up.
flush_length variable is now provide correct value based on the flush
matrix set by the user.
pesudo code in Change filament gcode:
```
...
T1
; Park head to the purging location
G1 X0 Y-5 F12000
; Purge certain amount of filament into waste bin
G1 E[flush_length] F600
...
```
This PR is based on the WIP tool changer branch #6087Fixes#4194#5937#5912
# Description
Add support of tool changer printers.
A new printer model has been added: `Generic ToolChanger`
Currently only support tool changer printers like `TapChanger` and
`StealthChanger`.
~Support for Prusa XL is still WIP.~ Prusa XL is supported now
~~⚠️WARNING⚠️ : please proceed with caution. It hasn't been tested on an
real printer yet. Please double check with g-code before printing it.~~
🚀GOOD NEWS🚀: Multiple successful prints have been reported; it should be
safe to try [Discord
Thread](https://discord.com/channels/1137181739773603922/1258993224018821160).
**For bugs, please kindly help by logging issues with details and sample
projects, then label them as ToolChanger. This will help me track
them.**
# Screenshots/Recordings/Graphs
https://github.com/SoftFever/OrcaSlicer/assets/103989404/bd518f77-5cc1-4b3a-ba76-7ead75494365
# Test
Feedback is welcomed!
For Mac users, please ref to this instruction:
https://github.com/SoftFever/OrcaSlicer#how-to-install
- [x] Occasionally crashes when change printer settings
- [x] Prusa XL profiles and custom gcode
- [x] Ooze prevention bug
- [x] Prusa XL z offset issue when prime tower is used
- [x] Preheat nozzle(temporary solution)
- [x] infinite(tall) skirt when both ooze prevention and skirt are
enabled
- [ ] skirt/purge cone overlap
- [ ] Document about custom variables
Implement #5943#2050#5079
* Fix calls to depreciated wxPen constructor
* Fix use of wxTimerEvent
* Fix unrecognized character escape sequence
* Fix signed/unsigned mismatch
At least as much as possible without significantly altering parts of the application
* Clean unreferenced variables
* fix mistyped namespace selector
* Update deprecated calls
* Fix preprocessor statement
* Remove empty switch statements
* Change int vector used as bool to bool vector
* Remove empty control statements and related unused code
* Change multi character constant to string constant
* Fix discarded return value
json::parse was being called on the object, rather than statically like it should be. Also, the value was not being captured.
* Rename ICON_SIZE def used by MultiMachine
By having the definition in the header, it causes issues when other files define ICON_SIZE. By renaming it to MM_ICON_SIZE, this lessens the issue. It would probably be ideal to have the definitions in the respective .cpp that use them, but it would make it less convenient to update the values if needed in the future.
* Remove unused includes
* Fix linux/macOS compilation
* Hide unused-function errors on non-Windows systems
* Disable signed/unsigned comparison mismatch error
* Remove/Disable more unused variables
Still TODO: check double for loop in Print.cpp
* Remove unused variable that was missed
* Remove unused variables in libraries in the src folder
* Apply temporary fix for subobject linkage error
* Remove/Disable last set of unused variables reported by GCC
* remove redundant for loop
* fix misspelled ifdef check
* Update message on dialog
* Fix hard-coded platform specific modifier keys
* Remove duplicate for loop
* Disable -Wmisleading-indentation warning
* disable -Wswitch warning
* Remove unused local typedefs
* Fix -Wunused-value
* Fix pragma error on Windows from subobject linkage fix
* Fix -Waddress
* Fix null conversions (-Wconversion-null)
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Fix crossing max x axis & rise max print height of Ender-3 V3 KE
* Merge branch 'main' into ender-3-V3-KE-4
* Merge branch 'main' into ender-3-V3-KE-4
* Adaptive Pressure advance options setup
* Dynamic PA - PCHIP interpolator code and tests
* Integrate dynamic PA with slicing code - emit new PA values per speed change
* Link adaptive PA to role change instead of speed change
* Adaptive PA - Alpha 2
Reduce the frequency of requested PA changes by introducing a "state" variable.
Implement user toggle for adapting PA for external walls for overhangs
* Hide adaptive PA for overhangs
* Convert Adaptive PA to use volumetric flow model and start preparing for converting to Gcode post processor
* Converted Dynamic PA to a post processing filter. Reverted changes in GCode cpp and created tagging mechanism to allow filter to apply PA changes.
* Removed adaptive PA for overhangs
* Foundations for two dimensional adaptive PA based on acceleration and volumetric flow speed
* Minor code cleanup and updating of tooltips
* Renaming files for better clarity and generate classes documentation
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Update src/libslic3r/PrintConfig.cpp
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
* Introduce average mm3_mm over the length of a multipath for adaptive PA
* Updates for multipath handling part 2
* Introduce average mm3_mm over the length of a multipath for adaptive PA
* Trigger PA evaluation more frequently to catch edge cases where speed changes across islands of the same feature type.
* Updates for multipath handling part 2
* Adaptive PA: Implement average flow estimation on loops
* Code formatting
* Fix adaptive PA not adapting for small disconnected external wall line segments.
* Updated to take max print speed of upcoming feature to calculate new PA value.
This is to resolve issue of incorrect PA value used when starting a new feature at an overhang.
* Code clean up
* Performance tuning
* Further performance tuning by reducing use of regex commands in the nested loops and fix bug preventing gcode line output
* Further performance tuning and tweaks to stop searching for max speed after the first travel move.
* Reduce debug information
* Updated debug info
* Fix an issue on seams on specific models when wipe before external perimeter was enabled. Also cleanup documentation and add new to-do's
* Prepare for adaptive PA for overhangs, fix wipe bug & clean up code and comments
* Initial commit for adapting PA when extruding fully overhanging perimeters
* Ignore wipe command when identifying current print speed
* Option to evaluate adaptive PA on overhang regions in preparation for Klipper experimental option testing
* Update to issue PA changes for varying flow conditions within the same feature
* Fix bug where adaptive PA was enabled erroneously for role changes and ignoring user's preference.
* Refactored some code
* More refactoring
* Some bug fixes and enabled comments only when verbose g-code is enabled
* Introduced dedicated PA option for bridges
* Code refactoring to optimise initialisation of PA processor (making it faster). Fix a bug where PA was not always set after a toolchange. Improve general error handling and robustness.
* Updates to adaptive PA tooltips
* Bridging PA check with Epsilon instead of 0.
* Adaptive PA: addressing comments
---------
Co-authored-by: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com>
removed imgui.set_requires_extra_frame(), this line causes Slic3r::GUI::GLCanvas3D::render() to be called repeatedly when 'Filament' or 'Speed' is selected for preview panel
* Flushing volumes button background color for active state
* Sliced plates bar > Use different colors on plate numbers for light / dark theme
* Remove 3D navigator background
* Device & Project Tab > Sidebar > Selected tab background color
* Merge branch 'SoftFever:main' into color-fixes-3
* Correct sidebar button color for light mode for bbl monitor / calibration and project page
* Homepage fixes
* Fix parameters group title color too bright on dark theme
* Search popup hovered item background color
* Sidebar > Search box > match border color with other input/combo boxes
* fix indents
* Add descriptions to statecolors
* Paint gizmos > remove background of non active Tool / Brush buttons on dark mode
* Merge branch 'SoftFever:main' into color-fixes-3
* Top bar / Main tab bar button hover background
* Fix broken color change from last merges
* Gizmos selected text background
* Keyboard shortcuts window selected tab bg color
* About page link color
* Project page fixes
* match disabled text color on combo boxes with input boxes
* Use better background color for disabled elements on dark mode
* match all colors for disabled elements
* BBL > Monitor tab > Add printer text and icon not visible on dark theme
* even darker bg color for homepage thumbnails
* Sidebar arrow not visible
* Better bg color for row highlighting
* match style of gizmo combo box
* Merge branch 'SoftFever:main' into color-fixes-3
* Revert changes for main tab bar background color of button while hover
Fix override that cause segfault and EGL initialization error
When user built Mesa from GIT and load it using env variables
LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH
it override LD_LIBRARY_PATH inside AppImage but other variable
LIBGL_DRIVERS_PATH not override and it cause EGL init error.
* Flashforge-06-12: gcode and filament mapping
* 06-27 Add Chuanying x1 printer profiles
* 20240702-Flashforge Guider 2s process fix
* [07-10 Flashforge]: Add more layer height options for AD5M and more nozzles for G3U etc.
* Update fdm_klipper_common.json
* Update fdm_machine_common.json
* add new nozzle type
* add new nozzle type with filaments
* add new nozzle type with mechine files
* add new nozzle type with process files
* Update InfiMech.json
add new nozzle type
* Update InfiMech.json
* Update 0.08mm Extra Fine @InfiMech TX.json
* Update 0.12mm Fine @InfiMech TX.json
* Update 0.16mm Optimal @InfiMech TX.json
* Update 0.20mm Standard @InfiMech TX.json
* Update 0.24mm Draft @InfiMech TX.json
* added Prusa Mini with Input Shaper to profiles
* Merge branch 'SoftFever:main' into main
* refactoring to more reusable settings
* Merge branch 'SoftFever:main' into main
* added more processes, changed settings
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Update 0.15mm Speed @MINIIS.json
* Update 0.10mm Speed @MINIIS.json
* changed to cubic because of speed
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* further changes after reviewing prusa slicer settings
* simplified machine settings
* retraction speeds according to prusa slicer
* Merge branch 'SoftFever:main' into main
* changed max flow according to prusa slicer
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* after clearification at the prusaslicer repository M900 got removed
* Merge branch 'SoftFever:main' into main
* precise wall per default
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* enable reverse overhang on odd by default
* added settings from prusa slicer
* changed cooling setings
* Merge branch 'SoftFever:main' into main
* changed default to inner-outer-inner wall
inner-outer-inner gives pretty good overhangs with better surface
* new profiles for bigger nozzles, changed some cooling settings according to prusaslicer
* profiles for different nozzles sizes, better speed settings
* initial layer height was wrong
* wrong initial layer height
* set the correct accelerations
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* changed firmware version number
* using pressure advance UI setting instead of custom filament g-code
* Merge branch 'SoftFever:main' into main
* Update Prusa Generic PC.json
* Update Prusa Generic PC.json
* changed max flow for PC
* added PVA filament profiles
* bug fix in filament loading
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* changed line width according to prusa slicer
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Merge branch 'main' into main
* changed heatbed temperature for Minis capabilities
* Merge branch 'main' of https://github.com/koppensb/OrcaSlicer
* Merge branch 'main' into main
* Merge branch 'SoftFever:main' into main
* set default support to snug
* changed default filament setting to the correct value
* Init port of Cura's MM interlocking
* Refactor a bit
* Fix crash when bottom surface is multi-color
* Fix crash when boundary avoidance is 0
* Add config
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* creating settings for printer and some UI changes work
* related filament diameter and pellet flow changes to each other
* UI name change to turn Filament to Material
* updated the flow coefficient to filament diameter formula
* updated the preset for the configuration wizard
* configuration changes for the final release
* config changes and preset bundle sync removed
* start gcode change for ginger machines
* added explanation of relationship between pellet_flow_coefficient and filament_diameter
* Added tooltip. Fixed Ginger machine configuration, Added docs
* add missing includes
Building without precompiled header support revealed some missing
includes that are added with this change for code health purposes.
Those missing includes were hidden by precompiled header support due to
the fact that the precompiled header file provides some definitions
despite not being defined in directly or indirectly included header
files.
Linux distros started removing libwebkit2gtk-4.0 libriry from their
repos. Ubuntu Noble (24.04) is one of them.
Modify debian/ubuntu deps to install libwebkit2gtk-4.1 if
no libwebkit2gtk-4.0 available
* Flashforge-06-12: gcode and filament mapping
* Merge branch 'SoftFever:main' into main
* Merge branch 'SoftFever:main' into main
* 06-27 Add Chuanying x1 printer profiles
* Update printer profiles
* Fix accelerations
* Fix z hop
* Small fixes
* Update layer height according to printer data sheet
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
add some series of printer parameter configurations. 15 Geeetech printers, including 3 series models.
Thunder series. A high-speed printer and the maximum printing speed can reach 300 mm/s. Mizar series. A machine that has very exquisite print quality and ultra quiet printing. Other Geeetech printers.
---Request from Geeetech offical .
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Do not use get_scaling_factor then construct the matrix again, because it cannot properly handle situations that contains negative scale (mirror) / shear (SoftFever/OrcaSlicer#5578)
* Do not use get_scaling_factor then construct the matrix again, because it cannot properly handle situations that contains negative scale (mirror) / shear (SoftFever/OrcaSlicer#5578, SoftFever/OrcaSlicer#4719)
* Fix regression, always create SmallAreaInfillFlowCompensator model
small_area_infill_flow_compensation is per-region parameter, it's not necessary to iterate though all regions to check whether to create a model.
* Make SmallAreaInfillFlowCompensator robus.
1. handle spaces/tabs/new lines etc
2. don't throw expection, fall back to no-op instead if parsing failed
* Fixing an issue that changing small_area_infill_flow_compensation per modifier didn't take effect
* Fix check_url_association return value
* Update Web Link Association Preferences
Uses a checkbox in place of button to show if the current instance is registered at a quick look
New function is added to build the link association item
Current association line shows "None" for no app associated, "Current Instance" if the current instance is associated, and the formatted path to the registered app (Removes quotes and other extra chars)
* Update to use localization
* Fix Linux Build
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Allow using BBL's device tab when 3rd party print host is used
* Add option to open SimplyPrint panel in device tab after uploading
* Fix default print host for prusa connect
* Do not set api key in device view when SimplyPrint is used
* Sending 3mf file to SimplyPrint when using BBL printers
* Fix file extension when uploading 3mf
* Prepare for large file uploading
* Implement chunk upload
* Fix file uploading exceeding content size
* Fix wrong field type
* Add `temp=true` to all chunk upload calls
* Add macro to enable test api
* Merge branch 'main' into dev/simplyprint-improve
* Fix another missing `temp=true`
* Add delete token
* Try fixing build error on *nix systems
* Merge branch 'main' into dev/simplyprint-improve
* Merge branch 'main' into dev/simplyprint-improve
* Merge remote-tracking branch 'remote/main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/BackgroundSlicingProcess.cpp
* Move the `bbl_use_print_host_webui` option to print host dialog. Also make it a derived option of `print_host_webui` instead.
* Merge branch 'main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/MainFrame.cpp
# src/slic3r/GUI/Plater.cpp
* Merge branch 'main' into dev/simplyprint-improve
# Conflicts:
# src/slic3r/GUI/Plater.cpp
* Use a more generic option instead of SimplyPrint specific
* Merge branch 'main' into dev/simplyprint-improve
* Merge branch 'main' into dev/simplyprint-improve
* Update OrcaSlicer_es.po
* some changes
* Some fixes
* More fixes
* More fixes and improves
* More fixes
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
Cambiado punto por coma
* Update Spanish Language
* Updated strings
* Update OrcaSlicer_es.po
* Update OrcaSlicer_es.po
* Fixed Spanish Strings in English
Fixed a lot of string whose are translations were english to english.
* Some spanish strings improved
* Update Spanish Strings in RC
* Add translation for "Don't slow down outer walls" in Korean
* Update existing/missing translations in Korean
* Make "Don't slow down outer walls" translation more natural
* Catalan language updated to 2.1.0 beta
Catalan language updated to 2.1.0 beta
* added catalan translation at text.js file
Added new language "ca_ES" but loading "en" by default. Catalan language should be shown at preferences as "Català" instead of "Catalan". Please, solve these issues
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
underscore-arch:${{ inputs.os == 'macos-12' && '_' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }}# if is macos, make a string that does "_{arch}", else output nothing
dash-arch:${{ inputs.os == 'macos-12' && '-' || ''}}${{ inputs.os == 'macos-12' && inputs.arch || '' }}# if is macos, make a string that does "-{arch}", else output nothing
underscore-arch:${{ inputs.os == 'macos-14' && '_' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }}# if is macos, make a string that does "_{arch}", else output nothing
dash-arch:${{ inputs.os == 'macos-14' && '-' || ''}}${{ inputs.os == 'macos-14' && inputs.arch || '' }}# if is macos, make a string that does "-{arch}", else output nothing
Please be aware that "orcaslicer.net" is NOT an official website for OrcaSlicer and may be potentially malicious. This site appears to use AI-generated content, lacking genuine context, and seems to exist solely to profit from advertisements. Worse, it may redirect download links to harmful sources. For your safety, avoid downloading OrcaSlicer from this site as the links may be compromised.
The only official platforms for OrcaSlicer are our GitHub project page and the <a href="https://discord.gg/P4VE9UY9gJ">official Discord channel</a> .
We deeply value our OrcaSlicer community and appreciate all the social groups that support us. However, it is crucial to address the risk posed by any group that falsely claims to be official or misleads its members. If you encounter such a group or are part of one, please assist by encouraging the group owner to add a clear disclaimer or by alerting its members.
Thank you for your vigilance and support in keeping our community safe!
# Main features
- Autocalibrations for all printers
- Sandwich(inner-outer-inner) mode - an improved version of the `External perimeters first` mode
- Auto-calibration for all printers
- Sandwich(inner-outer-inner) mode - An improved version of the `External Perimeters First` mode
-More features can be found in [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
-Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/)
# Wiki
The wiki below aims to provide a detailed explanation of the slicer settings, including how to maximize their use and how to calibrate and set up your printer.
Please note that the wiki is a work in progress. We appreciate your patience as we continue to develop and improve it!
**[Access the wiki here](https://github.com/SoftFever/OrcaSlicer/wiki)**
# Download
@@ -40,7 +60,7 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
**Mac**:
1. Download the DMG for your computer: `arm64` version for Apple Silicon and `x86_64` for Intel CPU.
2. Drag OrcaSlicer.app to Application folder.
3.*If you want to run a build from a PR, you also need following instructions below*
3.*If you want to run a build from a PR, you also need to follow the instructions below:*
<details quarantine>
- Option 1 (You only need to do this once. After that the app can be opened normally.):
- Step 1: Hold _cmd_ and right click the app, from the context menu choose **Open**.
@@ -58,15 +78,15 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
OrcaSlicer is originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
@@ -153,5 +178,5 @@ The GNU Affero General Public License, version 3 ensures that if you use any par
Orca Slicer includes a pressure advance calibration pattern test adapted from Andrew Ellis' generator, which is licensed under GNU General Public License, version 3. Ellis' generator is itself adapted from a generator developed by Sineos for Marlin, which is licensed under GNU General Public License, version 3.
The bambu networking plugin is based on non-free libraries from Bambulab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
The Bambu networking plugin is based on non-free libraries from BambuLab. It is optional to the Orca Slicer and provides extended functionalities for Bambulab printer users.
POLICY: Our security policy is to avoid leaving the ecosystem worse than we found it. Meaning we are not planning to introduce vulnerabilities into the ecosystem.
The OrcaSlicer team and community take all security bugs in OrcaSlicer seriously. Thank you for improving the security of OrcaSlicer. We appreciate your efforts to disclose the issue responsibly, and will make every effort to acknowledge your contributions.
# Security Policy
Report security bugs by emailing the lead maintainer at softfeverever@gmail.com and include the word "SECURITY" in the subject line.
At OrcaSlicer, we are committed to maintaining the security of our ecosystem. Our policy is to ensure that we do not introduce vulnerabilities and that any security issues are addressed promptly and responsibly. We appreciate your help in improving the security of OrcaSlicer and thank you for your responsible disclosure.
Reporting Security Bugs
The lead maintainer will acknowledge your email within a week (7 days), and will send a more detailed response up to 48 hours after that indicating the next steps in handling your report. After the initial reply to your report, the security team will endeavor to keep you informed of the progress towards a fix and an announcement. We may ask for additional information or guidance.
## To report a security bug, please follow these guidelines:
OrcaSlicer will confirm the problem and determine the affected versions.
OrcaSlicer will audit code to find any similar problems.
OrcaSlicer will prepare fixes for all releases still under maintenance. These fixes will be released as fast as possible.
Report security bugs in third-party modules to the person or team maintaining the module.
* Email Security Bugs:
Send an email to the lead maintainer at softfeverever@gmail.com.
Include the word "SECURITY" in the subject line of your email.
SECURITY DISCLOSURE: Your responsibility is to report vulnerabilities to us using the guidelines outlined below.
Please give detailed steps on how to disclose the vulnerability. Keep these OWASP guidelines in mind ( https://www.owasp.org/index.php/Vulnerability_Disclosure_Cheat_Sheet ) when creating your disclosure policy.
* Response Times:
The lead maintainer will acknowledge receipt of your email within one week (7 days).
A detailed response will follow within 48 hours, outlining the next steps for handling your report.
After the initial reply, the security team will keep you informed about the progress toward a fix and any announcements.
Below are some recommendations for security disclosures:
* Information and Collaboration:
We may request additional information or guidance as we work on addressing the issue.
When disclosing vulnerabilities please do the following:
Your name and affiliation (if any).
Include scope of vulnerability. Let us know who could use this exploit.
Document steps to identify the vulnerability. It is important that we can reproduce your findings.
Show how to exploit vulnerability, give us an attack scenario.
OrcaSlicer Checklist: Security Recommendations
Follow these steps to improve security when using OrcaSlicer.
* Handling the Report:
OrcaSlicer will confirm the problem and determine the affected versions.
We will audit the code to find any similar issues and prepare fixes for all releases still under maintenance.
Fixes will be released as quickly as possible.
...SEE SOMETHING
...SAY SOMETHING
1)...SEE SOMETHING
We suggest you goto #2 if this happens.
* Third-Party Modules:
Report security issues in third-party modules to the respective maintainer of those modules.
Why? Through experience we have found it is best to goto #2 in this situation.
## Security Disclosure Guidelines
When disclosing a vulnerability, please follow these steps to ensure your report is clear and actionable:
* Provide Detailed Information:
Scope: Clearly define the scope of the vulnerability.
Potential Impact: Let us know who could be affected by this exploit.
Reproduction Steps: Document detailed steps to reproduce the vulnerability.
Reference OWASP Guidelines:
Follow the <a href="https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html">OWASP Vulnerability Disclosure Cheat Sheet</a> for best practices in vulnerability disclosure.
## Security Recommendations
To enhance security when using OrcaSlicer, we recommend following these steps:
* SEE SOMETHING: If you notice anything suspicious or have concerns, please report it.
* SAY SOMETHING: If you have any doubts or need assistance, do not hesitate to contact us.
### Thank you for your commitment to the security of OrcaSlicer. Your efforts help us maintain a safe and reliable ecosystem.
**NOTE**: After completing the calibration process, remember to create a new project in order to exit the calibration mode.
**NOTE2**: @ItsDeidara has made a webpage to help with the calculation. Check it out if those equations give you a headache [here](https://orcalibrate.com/).
> [!IMPORTANT]
> After completing the calibration process, remember to create a new project in order to exit the calibration mode.
> [!TIP]
> @ItsDeidara has made a webpage to help with the calculation. Check it out if those equations give you a headache [here](https://orcalibrate.com/).
# Flow rate
##### *NOTE: For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option.*
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`.** Remember** to save the filament profile.
5. Update the flow ratio in the filament settings using the following equation: `FlowRatio_old*(100 + modifier)/100`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value should be calculated as follows: `0.98x(100+5)/100 = 1.029`.** Remember** to save the filament profile.
6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9 to 0`.
7. Repeat steps 4 and 5. In this case, if your previous flow ratio was 1.029 and you selected the block with a flow rate modifier of -6, the new value should be calculated as follows: `1.029x(100-6)/100 = 0.96726`. ** Remember ** to save the filament profile.
Orca Slicer includes three approaches for calibrating the pressure advance value. Each method has its own advantages and disadvantages. It is important to note that each method has two versions: one for a direct drive extruder and one for a Bowden extruder. Make sure to select the appropriate version for your test.
##### *NOTE: For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.*
Orca Slicer includes three approaches for calibrating the pressure advance value. Each method has its own advantages and disadvantages. It is important to note that each method has two versions: one for a direct drive extruder and one for a Bowden extruder. Make sure to select the appropriate version for your test.
> [!WARNING]
> For Marlin: Linear advance must be enabled in firmware (M900). **Not all printers have it enabled by default.**
> [!WARNING]
> For Bambulab X1/X1C users, make sure you do not select the 'Flow calibration' option when printings.
We have divided it roughly into the following pages:
Orca slicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki page aims to provide an detailed explanation of the slicer settings, how to get the most out of them as well as how to calibrate and setup your printer.
* [Calibration](wiki/Calibration)
* [Print settings](wiki/Print-settings)
* [How to build Orca Slicer](wiki/How-to-build)
The Wiki is work in progress so bear with us while we get it up and running!
## Print Settings, Tips and Tricks (Work In Progress)
The below sections provide a detailed settings explanation as well as tips and tricks in setting these for optimal print results.
The guide below takes you through the key calibration tests in Orca - flow rate, pressure advance, print temperature, retraction, tolerances and maximum volumetric speed
This feature aims to dynamically adjust the printer’s pressure advance to better match the conditions the toolhead is facing during a print. Specifically, to more closely align to the ideal values as flow rate, acceleration, and bridges are encountered.
This wiki page aims to explain how this feature works, the prerequisites required to get the most out of it as well as how to calibrate it and set it up.
## Settings Overview
This feature introduces the below options under the filament settings:
1.**Enable adaptive pressure advance:** This is the on/off setting switch for adaptive pressure advance.
2.**Enable adaptive pressure advance for overhangs:** Enable adaptive PA for overhangs as well as when flow changes within the same feature. This is an experimental option because if the PA profile is not set accurately, it will cause uniformity issues on the external surfaces before and after overhangs. It is recommended to start with this option switched off and enable it after the core adaptive pressure advance feature is calibrated correctly.
3.**Pressure advance for bridges:** Sets the desired pressure advance value for bridges. Set it to 0 to disable this feature. Experiments have shown that a lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after a bridge, which is caused by the pressure drop in the nozzle when printing in the air. Therefore, a lower pressure advance value helps counteract this. A good starting point is approximately half your usual PA value.
4.**Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below.
5.**Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but it’s the ultimate backstop).
<img width="452" alt="Adaptive PA settings" src="https://github.com/user-attachments/assets/68c46885-54c7-4123-afa0-762d3995185f">
## Pre-Requisites
This feature has been tested with Klipper-based printers. While it may work with Marlin or Bambu lab printers, it is currently untested with them. It shouldn’t adversely affect the machine; however, the quality results from enabling it are not validated.
**Older versions of Klipper used to stutter when pressure advance was changed while the toolhead was in motion. This has been fixed with the latest Klipper firmware releases. Therefore, make sure your Klipper installation is updated to the latest version before enabling this feature, in order to avoid any adverse quality impacts.**
Klipper firmware released after July 11th, 2024 (version greater than approximately v0.12.0-267) contains the above fix and is compatible with adaptive pressure advance. If you are upgrading from an older version, make sure you update both your Klipper installation as well as reflash the printer MCU’s (main board and toolhead board if present).
## Use case (what to expect)
Following experimentation, it has been noticed that the optimal pressure advance value is less:
1. The faster you print (hence the higher the volumetric flow rate requested from the toolhead).
2. The larger the layer height (hence the higher the volumetric flow rate requested from the toolhead).
3. The higher the print acceleration is.
What this means is that we never get ideal PA values for each print feature, especially when they vary drastically in speed and acceleration. We can tune PA for a faster print speed (flow) but compromise on corner sharpness for slower speeds or tune PA for corner sharpness and deal with slight corner-perimeter separation in faster speeds. The same goes for accelerations as well as different layer heights.
This compromise usually means that we settle for tuning an "in-between" PA value between slower external features and faster internal features so we don't get gaps, but also not get too much bulging in external perimeters.
**However, what this also means is that if you are printing with a single layer height, single speed, and acceleration, there is no need to enable this feature.**
Adaptive pressure advance aims to address this limitation by implementing a completely different method of setting pressure advance. **Following a set of PA calibration tests done at different flow rates (speeds and layer heights) and accelerations, a pressure advance model is calculated by the slicer.** Then that model is used to emit the best fit PA for any arbitrary feature flow rate (speed) and acceleration used in the print process.
In addition, it means that you only need to tune this feature once and print across different layer heights with good PA performance.
Finally, if during calibration you notice that there is little to no variance between the PA tests, this feature is redundant for you. **From experiments, high flow nozzles fitted on high-speed core XY printers appear to benefit the most from this feature as they print with a larger range of flow rates and at a larger range of accelerations.**
### Expected results:
With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer.
Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below.
## How to calibrate the adaptive pressure advance model
### Defining the calibration sets
Firstly, it is important to understand your printer speed and acceleration limits in order to set meaningful boundaries for the calibrations:
1.**Upper acceleration range:** Do not attempt to calibrate adaptive PA for an acceleration that is larger than what the Klipper input shaper calibration tool recommends for your selected shaper. For example, if Klipper recommends an EI shaper with 4k maximum acceleration for your slowest axis (usually the Y axis), don’t calibrate adaptive PA beyond that value. This is because after 4k the input shaper smoothing is magnified and the perimeter separations that appear like PA issues are caused by the input shaper smoothing the shape of the corner. Basically, you’d be attempting to compensate for an input shaper artefact with PA.
2.**Upper print speed range:** The Ellis PA pattern test has been proven to be the most efficient and effective test to run to calibrate adaptive PA. It is fast and allows for a reasonably accurate and easy-to-read PA value. However, the size of the line segments is quite small, which means that for the faster print speeds and slower accelerations, the toolhead will not be able to reach the full flow rate that we are calibrating against. It is therefore generally not recommended to attempt calibration with a print speed of higher than ~200-250mm/sec and accelerations slower than 1k in the PA pattern test. If your lowest acceleration is higher than 1k, then proportionally higher maximum print speeds can be used.
**Remember:** With the calibration process, we aim to create a PA – Flow Rate – Acceleration profile for the toolhead. As we cannot directly control flow rate, we use print speed as a proxy (higher speed -> higher flow).
With the above in mind, let’s create a worked example to identify the optimal number of PA tests to calibrate the adaptive PA model.
**The below starting points are recommended for the majority of Core XY printers:**
**That means we need to run 3x4 = 12 PA tests and identify the optimal PA for them.**
Finally, if the maximum acceleration given by input shaper is materially higher than 4k, run a set of tests with the higher accelerations. For example, if input shaper allows a 6k value, run PA tests as below:
So, at worst case you will need to run 5x4 = 20 PA tests if your printer acceleration is on the upper end! In essence, you want enough granularity of data points to create a meaningful model while also not overdoing it with the number of tests. So, doubling the speed and acceleration is a good compromise to arrive at the optimal number of tests.
For this example, let’s assume that the baseline number of tests is adequate for your printer:
### Identifying the flow rates from the print speed
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.
Setup your PA test as usual from the calibration menu in Orca slicer. It is recommended that the PA step is set to a small value, to allow you to make meaningful distinctions between the different tests –**therefore a PA step value of 0.001 is recommended. **
**Set the end PA to a value high enough to start showing perimeter separation for the lowest flow (print speed) and acceleration test.** For example, for a Voron 350 using Revo HF, the maximum value was set to 0.05 as that was sufficient to show perimeter separation even at the slowest flow rates and accelerations.
**If the test is too big to fit on the build plate, increase your starting PA value or the PA step value accordingly until the test can fit.** If the lowest value becomes too high and there is no ideal PA present in the test, focus on increasing the PA step value to reduce the number of herringbones printed (hence the size of the print).
Once setup, your PA test should look like the below:
<img width="437" alt="PA calibration test 1" src="https://github.com/user-attachments/assets/1e6159fe-c3c5-4480-95a1-4383f1fae422">
<img width="437" alt="Pa calibration test 2" src="https://github.com/user-attachments/assets/c360bb18-a97a-4f37-b5a3-bb0c67cac2b6">
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.
Now run the tests and note the optimal PA value, the flow, and the acceleration. You should produce a table like this:
Concatenate the PA value, the flow value, and the acceleration value into the final comma-separated sets to create the values entered in the model as shown above.
**You’re now done! The PA profile is created and calibrated!**
Remember to paste the values in the adaptive pressure advance measurements text box as shown below, and save your filament profile.
The adaptive PA model built into the slicer is flexible enough to allow for as many or as few increments of flow and acceleration as you want. Ideally, you want at a minimum 3x data points for acceleration and flow in order to create a meaningful model.
However, if you don’t want to calibrate for flow, just run the acceleration tests and leave flow the same for each test (in which case you’ll input only 3 rows in the model text box). In this case, flow will be ignored when the model is used.
Similarly for acceleration – in the above example you’ll input only 4 rows in the model text box, in which case acceleration will be ignored when the model is used.
**However, make sure a triplet of values is always provided – PA value, Flow, Acceleration.**
#### Identifying the right PA:
Higher acceleration and higher flow rate PA tests are easier to identify the optimal PA as the range of “good” values is much narrower. It’s evident where the PA is too large, as gaps start to appear in the corner and where PA is too low, as the corner starts bulging.
However, the lower the flow rate and accelerations are, the range of good values is much wider. Having examined the PA tests even under a microscope, what is evident, is that if you can’t distinguish a value as being evidently better than another (i.e. sharper corner with no gaps) with the naked eye, then both values are correct. In which case, if you can’t find any meaningful difference, simply use the optimal values from the higher flow rates.
- **Too high PA**

This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless.
- [Preset, PresetBundle and PresetCollection](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/developer-reference/Preset-and-bundle.md)
This page deals with the explanation for 3 classes in the code.
## [`Preset`](../../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
#### Note: 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.
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.
This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT).
`PresetCollection prints`\
`PresetCollection filaments`\
`PrinterPresetCollection printers`
each one of these contains a collection of processes, filaments and printers respectively.\
#### Note: 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.
### !! incomplete, possibly inaccurate, being updated with new info !!
## [`Plater`](../../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`](../../src/slic3r/GUI/Plater.hpp)
This is relating the the sidebar in the application window
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.
Large format printers with print volumes in the order of 1m^3 generally use pellets for printing.
The overall tech is very similar to FDM printing.
It is FDM printing, but instead of filaments, it uses pellets.
The difference here is that where filaments have a filament_diameter that is used to calculate
the volume of filament ingested, pellets have a particular flow_coefficient that is empirically
devised for that particular pellet.
pellet_flow_coefficient is basically a measure of the packing density of a particular pellet.
Shape, material and density of an individual pellet will determine the packing density and
the only thing that matters for 3d printing is how much of that pellet material is extruded by
one turn of whatever feeding mehcanism/gear your printer uses. You can emperically derive that
for your own pellets for a particular printer model.
We are translating the pellet_flow_coefficient into filament_diameter so that everything works just like it
does already with very minor adjustments.
filament_diameter = sqrt( (4 \* pellet_flow_coefficient) / PI )
sqrt just makes the relationship between flow_coefficient and volume linear.
higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
All other calculations remain the same for slicing.
This feature ensures the accurate Z height of the model after slicing, even if the model height is not a multiple of the layer height.
For example, slicing a 20mm x 20mm x 20.1mm cube with a layer height of 0.2mm would typically result in a final height of 20.2mm due to the layer height increments.
By enabling this parameter, the layer height of the last five layers is adjusted so that the final sliced height matches the actual object height, resulting in an accurate 20.1mm (as shown in the picture).
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:
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.
2. While technically there is no limit to how small a layer height one can use, **typically most printers struggle to print reliably with a layer height that is smaller than 20% of the nozzle diameter**. This is because with smaller layer heights, less material is extruded per mm and, at some point, the tolerances of the extruder system result in variations in the flow to such an extent that visible artifacts occur, especially if printing at high speeds.
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
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:
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.
These settings control how wide the extruded lines are.
- **Default**: The default line width in mm or as a percentage of the nozzle size.
- **First Layer**: The line width of the first layer. Typically, this is wider than the rest of the print, to promote better bed adhesion. See tips below for why.
- **Outer Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s external wall perimeters.
- **Inner Wall**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal wall perimeters.
- **Top Surface**: The line width in mm or as a percentage of the nozzle size used when printing the model’s top surface.
- **Sparse Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s sparse infill.
- **Internal Solid Infill**: The line width in mm or as a percentage of the nozzle size used when printing the model’s internal solid infill.
- **Support**: The line width in mm or as a percentage of the nozzle size used when printing the model’s support structures.
## Tips:
1.**Typically, the line width will be anything from 100% up to 150% of the nozzle width**. Due to the way the slicer’s 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).
2.**For most cases, the minimum acceptable recommended line width is 105% of the nozzle diameter**, typically reserved for the outer walls, where greater precision is required. A wider line is less precise than a thinner line.
3.**Wider lines provide better adhesion to the layer below**, as the material is squished more with the previous layer. For parts that need to be strong, setting this value to 120-150% of the nozzle diameter is recommended and has been experimentally proven to significantly increase part strength.
4.**Wider lines improve step over and overhang appearance**, i.e., the overlap of the currently printed line to the surface below. So, if you are printing models with overhangs, setting a larger external perimeter line width will improve the overhang’s appearance to an extent.
5.**For top surfaces, typically a value of ~100%-105% of the nozzle width is recommended** as it provides the most precision, compared to a wider line.
6.**For external walls, you need to strike a balance between precision and step over and, consequently, overhang appearance.** Typically these values are set to ~105% of nozzle diameter for models with limited overhangs up to ~120% for models with more significant overhangs.
7.**For internal walls, you typically want to maximize part strength**, so a good starting point is approximately 120% of the nozzle width, which gives a good balance between print speed, accuracy, and material use. However, depending on the model, larger or smaller line widths may make sense in order to reduce gap fill and/or line width variations if you are using Arachne.
8.**Don’t feel constrained to have wider internal wall lines compared to external ones**. While this is the default for most profiles, for models where significant overhangs are present, printing wider external walls compared to the internal ones may yield better overhang quality without increasing material use!
9.**For sparse infill, the line width also affects how dense, visually, the sparse infill will be.** The sparse infill aims to extrude a set amount of material based on the percentage infill selected. When increasing the line width, the space between the sparse infill extrusions is larger in order to roughly maintain the same material usage. Typically for sparse infill, a value of 120% of nozzle diameter is a good starting point.
10.**For supports, using 100% or less line width will make the supports weaker** by reducing their layer adhesion, making them easier to remove.
11.**If your printer is limited mechanically, try to maintain the material flow as consistent as possible between critical features of your model**, to ease the load on the extruder having to adapt its flow between them. This is especially useful for printers that do not use pressure advance/linear advance and if your extruder is not as capable mechanically. You can do that by adjusting the line widths and speeds to reduce the variation between critical features (e.g., external and internal wall flow). For example, print them at the same speed and the same line width, or print the external perimeter slightly wider and slightly slower than the internal perimeter. Material flow can be visualized in the sliced model – flow drop down.
Unless printed in spiral vase mode, every layer needs to begin somewhere and end somewhere. That start and end of the extrusion is what results in what visually looks like a seam on the perimeters. This section contains options to control the visual appearance of a seam.
- **Seam Position**: Controls the placement of the seam.
1.**Aligned**: Will attempt to align the seam to a hidden internal facet of the model.
2.**Nearest**: Will place the seam at the nearest starting point compared to where the nozzle stopped printing in the previous layer.
3.**Back**: Will align the seam in a (mostly) straight line at the rear of the model.
4.**Random**: Will randomize the placement of the seam between layers.
Typically, aligned or back work the best, especially in combination with seam painting. However, as seams create weak points and slight surface "bulges" or "divots," random seam placement may be optimal for parts that need higher strength as that weak point is spread to different locations between layers (e.g., a pin meant to fit through a hole).
- **Staggered Inner Seams**: As the seam location forms a weak point in the print (it's a discontinuity in the extrusion process after all!), staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model.
- **Seam Gap**: Controls the gap in mm or as a percentage of the nozzle size between the two ends of a loop starting and ending with a seam. A larger gap will reduce the bulging seen at the seam. A smaller gap reduces the visual appearance of a seam. For a well-tuned printer with pressure advance, a value of 0-15% is typically optimal.
- **Scarf Seam**: Read more here: [Better Seams - An Orca Slicer Guide](https://www.printables.com/model/783313-better-seams-an-orca-slicer-guide-to-using-scarf-s).
- **Role-Based Wipe Speed**: Controls the speed of a wipe motion, i.e., how fast the nozzle will move over a printed area to "clean" it before traveling to another area of the model. It is recommended to turn this option on, to ensure the nozzle performs the wipe motion with the same speed that the feature was printed with.
- **Wipe Speed**: If role-based wipe speed is disabled, set this field to the absolute wipe speed or as a percentage over the travel speed.
- **Wipe on Loops**: When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing.
- **Wipe Before External Perimeters**: To minimize the visibility of potential over-extrusion at the start of an external perimeter, the de-retraction move is performed slightly on the inside of the model and, hence, the start of the external perimeter. That way, any potential over-extrusion is hidden from the outside surface.
This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order, as in these modes, it is more likely an external perimeter is printed immediately after a de-retraction move, which would cause slight extrusion variance at the start of a seam.
## Tips:
With seams being inevitable when 3D printing using FFF, there are two distinct approaches on how to deal with them:
1.**Try and hide the seam as much as possible**: This can be done by enabling scarf seam, which works very well, especially with simple models with limited overhang regions.
2.**Try and make the seam as "clean" and "distinct" as possible**: This can be done by tuning the seam gap and enabling role-based wipe speed, wipe on loops, and wipe before the external loop.
## Troubleshooting Seam Performance:
The section below will focus on troubleshooting traditional seams. For scarf seam troubleshooting, refer to the guide linked above.
There are several factors that influence how clean the seam of your model is, with the biggest one being extrusion control after a travel move. As a seam defines the start and end of an extrusion, it is critical that:
1.**The same amount of material is extruded at the same point across layers** to ensure a consistent visual appearance at the start of a seam.
2.**The printer consistently stops extruding at the same point** across layers.
However, due to mechanical and material tolerances, as well as the very nature of 3D printing with FFF, that is not always possible. Hopefully with some tuning you'll be able to achieve prints like this!
Imagine the scenario where the toolhead finishes printing a layer line on one side of the bed, retracts, travels the whole distance of the bed to de-retract, and starts printing another part. Compare this to the scenario where the toolhead finishes printing an internal perimeter and only travels a few mm to start printing an external perimeter, without even retracting or de-retracting.
The first scenario has much more opportunity for the filament to ooze outside the nozzle, resulting in a small blob forming at the start of the seam or, conversely, if too much material has leaked, a gap/under extrusion at the start of the seam.
The key to a consistent start of a seam is to reduce the opportunity for ooze as much as possible. The good news is that this is mostly tunable by:
1.**Ensure your pressure advance is calibrated correctly**. A too low pressure advance will result in the nozzle experiencing excess pressure at the end of the previous extrusion, which increases the chance of oozing when traveling.
2.**Make sure your travel speed is as fast as possible within your printer's limits**, and the travel acceleration is as high as practically possible, again within the printer's limits. This reduces the travel time between features, reducing oozing.
3.**Enable wipe before external perimeters**– this setting performs the de-retraction move inside the model, hence reducing the visual appearance of the "blob" if it does appear at the seam.
4.**Increase your travel distance threshold to be such that small travel moves do not trigger a retraction and de-retraction operation**, reducing extrusion variances caused by the extruder tolerances. 2-4mm is a good starting point as, if your PA is tuned correctly and your travel speed and acceleration are high, it is unlikely that the nozzle will ooze in the milliseconds it will take to travel to the new location.
5.**Enable retract on layer change**, to ensure the start of your layer is always performed under the same conditions – a de-pressurized nozzle with retracted filament.
In addition, some toolhead systems are inherently better at seams compared to others. For example, high-flow nozzles with larger melt zones usually have poorer extrusion control as more of the material is in a molten state inside the nozzle. They tend to string more, ooze easier, and hence have poorer seam performance. Conversely, smaller melt zone nozzles have more of the filament solid in their heat zone, leading to more accurate extrusion control and better seam performance.
So this is a trade-off between print speed and print quality. From experimental data, volcano-type nozzles tend to perform the worst at seams, followed by CHT-type nozzles, and finally regular flow nozzles.
In addition, larger nozzle diameters allow for more opportunity for material to leak compared to smaller diameter nozzles. A 0.2/0.25 mm nozzle will have significantly better seam performance than a 0.4, and that will have much better performance than a 0.6mm nozzle and so forth.
### Troubleshooting the End of a Seam:
The end of a seam is much easier to get right, as the extrusion system is already at a pressure equilibrium while printing. It just needs to stop extruding at the right time and consistently.
**If you are getting bulges at the seam**, the extruder is not stopping at the right time. The first thing to tune would be **pressure advance**– too low of a PA will result in the nozzle still being pressurized when finishing the print move, hence leaving a wider line at the end as it stops printing.
And the opposite is true too –**too high PA will result in under extrusion at the end of a print move**, shown as a larger-than-needed gap at the seam. Thankfully, tuning PA is straightforward, so run the calibration tests and pick the optimal value for your material, print speed, and acceleration.
Furthermore, the printer mechanics have tolerances – the print head may be requested to stop at point XY but practically it cannot stop precisely at that point due to the limits of micro-stepping, belt tension, and toolhead rigidity. Here is where tuning the seam gap comes into effect. **A slightly larger seam gap will allow for more variance to be tolerated at the end of a print move before showing as a seam bulge**. Experiment with this value after you are certain your PA is tuned correctly and your travel speeds and retractions are set appropriately.
Finally, the techniques of **wiping can help improve the visual continuity and consistency of a seam** (please note, these settings do not make the seam less visible, but rather make them more consistent!). Wiping on loops with a consistent speed helps tuck in the end of the seam, hiding the effects of retraction from view.
### The Role of Wall Ordering in Seam Appearance:
The order of wall printing plays a significant role in the appearance of a seam. **Starting to print the external perimeter first after a long travel move will always result in more visible artifacts compared to printing the internal perimeters first and traveling just a few mm to print the external perimeter.**
For optimal seam performance, printing with **inner-outer-inner wall order is typically best, followed by inner-outer**. It reduces the amount of traveling performed prior to printing the external perimeter and ensures the nozzle is having as consistent pressure as possible, compared to printing outer-inner.
d="M 0.36895847,8.2161586 H 20.495973 V 1.5286532 H 20.6431 l 2.53059,1.265626 V 18.028666 H 23.026563 L 20.495973,16.76304 V 11.341161 H 1.6931042 L 0.36895847,8.3724087 Z"
d="m 0.95746767,22.325545 q 0,-4.687504 4.41381913,-4.687504 h 7.3563652 q 4.413819,0 4.413819,4.687504 v 3.593752 q 0,4.687505 -4.413819,4.687505 H 11.947877 L 4.812203,20.809918 q -1.2064438,0.218751 -1.2064438,1.515627 v 3.593752 q 0,1.562501 1.7655276,1.562501 h 0.7797747 l 1.3241457,2.968754 v 0.15625 H 5.3712868 q -4.41381913,0 -4.41381913,-4.687505 z m 6.92969593,-1.562502 5.0906044,6.70313 q 1.515411,-0.09375 1.515411,-1.546876 v -3.593752 q 0,-1.562502 -1.765527,-1.562502 z"
d="m 0.36895847,36.606806 v -0.156251 l 1.20644393,-2.718752 7.474067,4.843754 7.4593546,-4.843754 1.221156,2.734377 v 0.156251 l -6.282336,3.796877 6.282336,3.781253 v 0.15625 l -1.221156,2.734377 -7.4593546,-4.843753 -7.474067,4.843753 -1.20644393,-2.718752 v -0.15625 L 6.666007,40.419308 Z"
d="M 0.36895847,52.747446 H 14.463754 v -4.015628 h 0.147128 l 2.530589,1.265626 v 2.750002 h 5.296583 l 1.324146,2.968752 v 0.15625 h -6.620729 v 4.015628 H 16.994343 L 14.463754,58.62245 V 55.872448 H 1.6931042 L 0.36895847,52.903696 Z"
d="m 0.95746767,67.309956 q 0,-4.687505 4.41381913,-4.687505 H 16.405834 l 1.324146,2.968752 v 0.15625 H 5.3712868 q -1.7655276,0 -1.7655276,1.562503 v 3.593752 q 0,1.562501 1.7655276,1.562501 H 16.405834 l 1.324146,2.968753 v 0.15625 H 5.3712868 q -4.41381913,0 -4.41381913,-4.687504 z"
d="M 0.36895847,80.278718 H 12.727652 q 4.413819,0 4.413819,4.687504 v 3.906253 h -0.147128 l -2.501164,-1.250001 v -2.656252 q 0,-1.562501 -1.765527,-1.562501 H 1.6931042 L 0.36895847,80.434968 Z"
d="m 0.95746767,96.216231 q 0,-4.687503 4.41381913,-4.687503 h 7.3563652 q 4.413819,0 4.413819,4.687503 v 3.593753 q 0,4.687506 -4.413819,4.687506 H 11.947877 L 4.812203,94.700605 q -1.2064438,0.21875 -1.2064438,1.515626 v 3.593753 q 0,1.562506 1.7655276,1.562506 h 0.7797747 l 1.3241457,2.96875 v 0.15625 H 5.3712868 q -4.41381913,0 -4.41381913,-4.687506 z m 6.92969593,-1.562501 5.0906044,6.70313 q 1.515411,-0.0937 1.515411,-1.546876 v -3.593753 q 0,-1.562501 -1.765527,-1.562501 z"
d="m 0.95746767,113.87248 q 0,-4.6875 4.41381913,-4.6875 h 7.3563652 q 4.413819,0 4.413819,4.6875 v 3.59376 q 0,1.0625 -0.456095,1.5625 h 5.752678 l 1.324146,2.96875 v 0.15625 H 5.3712868 q -4.41381913,0 -4.41381913,-4.6875 z m 2.64829153,0 v 3.59376 q 0,1.5625 1.7655276,1.5625 h 7.3563652 q 1.765527,0 1.765527,-1.5625 v -3.59376 q 0,-1.5625 -1.765527,-1.5625 H 5.3712868 q -1.7655276,0 -1.7655276,1.5625 z"
d="m 0.95746767,146.37253 q 0,-5.46876 5.14945553,-5.46876 H 18.024235 q 5.149455,0 5.149455,5.46876 v 4.84376 q 0,5.46875 -5.149455,5.46875 h -1.618401 l -1.324145,-2.96875 v -0.15625 h 2.942546 q 2.501164,0 2.501164,-2.34375 v -4.84376 q 0,-2.34376 -2.501164,-2.34376 H 6.1069232 q -2.501164,0 -2.501164,2.34376 v 4.84376 q 0,2.34375 2.501164,2.34375 h 1.6184004 l 1.3241458,2.96875 v 0.15625 H 6.1069232 q -5.14945553,0 -5.14945553,-5.46875 z"
d="m 3.6057592,166.84129 v 3.59376 q 0,1.5625 1.7655276,1.5625 h 7.3563652 q 1.765527,0 1.765527,-1.5625 v -3.59376 q 0,-1.5625 -1.765527,-1.5625 H 5.3712868 q -1.7655276,0 -1.7655276,1.5625 z m -2.64829153,0 q 0,-4.6875 4.41381913,-4.6875 h 7.3563652 q 4.413819,0 4.413819,4.6875 v 3.59376 q 0,4.6875 -4.413819,4.6875 H 5.3712868 q -4.41381913,0 -4.41381913,-4.6875 z"
d="m 3.6057592,184.49756 v 3.59375 q 0,1.5625 1.7655276,1.5625 h 7.3563652 q 1.765527,0 1.765527,-1.5625 v -3.59375 q 0,-1.5625 -1.765527,-1.5625 H 5.3712868 q -1.7655276,0 -1.7655276,1.5625 z m -2.64829153,0 q 0,-4.68751 4.41381913,-4.68751 h 7.3563652 q 4.413819,0 4.413819,4.68751 v 3.59375 q 0,4.6875 -4.413819,4.6875 H 5.3712868 q -4.41381913,0 -4.41381913,-4.6875 z"
d="M 0.36895847,220.12259 H 22.438054 l 0.735636,1.65625 v 8.34375 q 0,5.46876 -5.149455,5.46876 h -4.413819 q -5.1494559,0 -5.1494559,-5.46876 v -6.875 H 1.6931042 l -1.32414573,-2.96875 z m 20.15644053,3.125 h -9.416147 v 6.875 q 0,2.34376 2.501164,2.34376 h 4.413819 q 2.501164,0 2.501164,-2.34376 z"
d="m 3.6057592,253.5601 v 3.28125 q 0,1.5625 1.7655276,1.5625 h 2.0156441 q 1.7655275,0 1.7655275,-1.5625 v -3.28125 q 0,-1.5625 -1.7655275,-1.5625 H 5.3712868 q -1.7655276,0 -1.7655276,1.5625 z m -2.64829153,0 q 0,-4.6875 4.41381913,-4.6875 h 2.0156441 q 4.4138191,0 4.4138191,4.6875 v 3.28125 q 0,0.81251 -0.441382,1.5625 h 1.368284 q 1.765527,0 1.765527,-1.5625 v -5.59375 h 0.147128 l 2.501164,1.25 v 4.34375 q 0,4.68751 -4.413819,4.68751 H 1.6931042 L 0.36895847,258.5601 v -0.15625 H 1.3988496 q -0.44138193,-0.59374 -0.44138193,-1.5625 z"
d="M 0.36895847,268.27887 H 14.463754 v -4.01563 h 0.147128 l 2.530589,1.26562 v 2.75001 h 5.296583 l 1.324146,2.96875 v 0.15625 h -6.620729 v 4.01562 h -0.147128 l -2.530589,-1.26562 v -2.75 H 1.6931042 l -1.32414573,-2.96875 z"
d="m 0.95746767,282.84136 q 0,-4.6875 4.41381913,-4.6875 h 7.3563652 q 4.413819,0 4.413819,4.6875 v 3.59376 q 0,4.6875 -4.413819,4.6875 h -0.779775 l -7.135674,-9.79688 q -1.2064438,0.21875 -1.2064438,1.51562 v 3.59376 q 0,1.5625 1.7655276,1.5625 h 0.7797747 l 1.3241457,2.96875 v 0.15625 H 5.3712868 q -4.41381913,0 -4.41381913,-4.6875 z m 6.92969593,-1.5625 5.0906044,6.70314 q 1.515411,-0.0938 1.515411,-1.54688 v -3.59376 q 0,-1.5625 -1.765527,-1.5625 z"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.