Skip to content

Conversation

pi-squared-studio
Copy link
Contributor

@pi-squared-studio pi-squared-studio commented Jun 24, 2025

I can't post the entire package of changes yet, but this is just the beginning. These features do not affect the latest changes to the pattern rotation system. They are merely adding new functionality.

This is the development of a branch #9954 (I'll close it myself later)

Description

At the moment, some functions have been implemented:

  • adaptation of the fill direction to the direction of the model on the bed
  • rotation of the top surface pattern
  • rotation of the bottom surface pattern
  • template metalanguage for solid and sparse infill rotation

The template metalanguage:

[±]α[*ℤ or !][solid or joint sign, оr its combinations][-][ℕ, B or T][length modifier][* or !] - full length template instruction for the sparse infill
[±]α[*ℤ or !][joint sign][-][ℕ][* or !] - full length template instruction for the solid infill
[±]α* - just setting an initial rotation angle
[solid or joint sign]ℕ[!] - putting the solid layers ℕ times without them rotating
[B or T][!] - putting the solid layers according to the number of bottom or top shell layers without them rotating

where:
[...] - values in square brackets are optional

[±]α - command of setting of rotation infill angle (for joint infills at some height range, this angle is finite)
α - just set absolute angle 0...360
- set positive relative angle CCW
- set negative relative angle CW

[*, *ℤ or !] - runtime instructions
* - the mark of "dumb" instruction. Its need for setting an initial angle. No further action will be taken.
*ℤ - repeat the instruction ℤ times
! - the one-time running instruction

[solid sign] - mark for insert solid layer
D - insert native sparse patterned layer but with 100% density
S - insert user-defined solid layer
O - insert Concentric solid layer
M - insert Monotonic solid layer
R - insert Rectilinear solid layer

[joint sign] - connection symbol for turning the infill
/ - linear displacement of the infill
# - infill of multiple layers with vertical displacement at finish angle
#- - infill of multiple layers with vertical displacement at initial angle
| - infill of multiple layers with vertical displacement at middle angle
N - infill form by sinus function (vertical connection)
n - infill form by sinus function (vertical connection, lazy)
Z - infill form by sinus function (horizontal connection)
z - infill form by sinus function (horizontal connection, lazy)
L - infill form by quarter of circle (horizontal to vertical connection)
l - infill form by quarter of circle (vertical to horizontal connection)
U - infill form by squared function
u - infill form by squared function (inverse)
Q - infill form by cubic function
q - infill form by cubic function (inverse)
$ - infill form by arcsinus method
~ - infill form random angle
^ - infill form pseudorandom angle

[-]ℕ - counting the distance at which the turn will take place
- the count will take place by ℕ layers
-ℕ - indicates that the joint form will be flipped upward
B - the count will take place by next layers equals of bottom_shell_layers parameter
T - the count will take place by next layers equals of top_shell_layers parameter

ℕ[length modifier] - the distance at which the specified turn will take place
ℕmm - the distance in millimeters
ℕcm - the distance in centimeters
ℕm - the distance in meters
ℕ' - the distance in feet
ℕ" - the distance in inches
ℕ# - the distance in range of standard height of ℕ layers
ℕ% - the distance of model height in percents

Examples

Each instruction is written by combination of symbols and numbers and separated by a comma or a space.
For more complex instructions, an autoformat is used to make the template easier to read.

Simple absolute instructions

They include a simple definition of the angle for each layer. Note that the initial setting of this angle is also affected by the value in the sparse or solid infill angle field.

0, 15, 45.5, 256.5605... - just fill at the existing angle. The initial direction starts at the X-axis one, and the acceptable range of values is from 0 to 360
0%, 10%, 25%, 100%... - the same as above, but in relative terms from a full turn of 360 degree rotation. Rotate by 0, 36, 90, and 0 degrees.
0, 30 - is a simple alternation through each layer in the direction of 0 and 30 degrees.
30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360 - a more complex command defines a turn every layer at 30 degrees. At the end of the template line, the next instruction is read first, and this process continues until the entire height of the model is filled in.

Relative instructions

+30 - this is a short recording of the instruction set above.
-30 - this is the same instruction, but with clockwise rotation. The equivalent of 330, 300, 270, 240, 210, 180, 150, 120, 90, 60, 30, 0 ...
+150 - you can specify a different multiple of the irrational angle for better fill dispersion = 150, 300, 90, 240, 30, 180, 330, 120, 270, 60, 210, 0 ...
+15% - useful for dividing angles on a decimal basis = 54, 108, 162, 270, 324, 18, 72, 126, 180, 234, 288, 342, 36, 90, 144, 196, 252, 306, 0 ...
+30, +90 - a complex instruction setting the rotation of each layer in these positions = 30, 120, 150, 240, 270, 0 ...
0, +30, +90 - a complex instruction setting the rotation of each layer in these positions = 0, 30, 120 ...

Repetitive, adjusting and one-time instructions

5, 10, +20 - simple instructions without modifiers. Sets the angles in sequence = 5, 10, 30, 5, 10, 30, 5, 10 ...
5, 10*, +20 - the * sign sets the initial angle without quantitative designation without the layer processing. It is useful for setting the orientation of a group of layers, which will be described below. Sets the angles in sequence = 5, 30, 5, 30, 5, 30, 5 ...
5, 10!, +20 - the ! sign indicates that instruction will be executed only once for the entire height of the model. Sets the angles in sequence = 5, 10, 30, 5, 25, 5, 25, 5 ...
5, 10*!, +20 - the combination * and ! signs also usable = 5, 30, 5, 25, 5, 25, 5, 25 ...
5, 10*3, +20 - if a number is written after the * sign, it indicates the number of repetitions of this instruction. Sets the angles in sequence = 5, 10, 10, 10, 30, 5, 10, 10, 10, 30, 5, 10 ...

Range instructions

A combined set of layers will be organized, where the rotation of one layer relative to the other will also be predetermined.
You can specify how many layers will be rotated by a certain angle, and according to which mathematical law this rotation will be performed. This law is determined by writing a certain symbol and specifying a numeric value after it.
The following signs are available that determine the shape of the turn: / # #- | N n Z z L l U u Q q $ ~ ^. For their purpose, see above.

Also, after the digital value there is a range modifier, then this rotation will occur according to the described length.
The following modifiers are available that determine the range of turn: mm cm m ' " # %. For their purpose, see above.
If there is the - sign before the numeric value, then the initial fill angle changes with the final one. This is useful for joining the linear infills in some cases. Absolute values of the rotation angle using the range instructions have no effect.
It is important to know that this will not be the exact length, but will be tied to the nearest layer from below.

Examples:
+45/100 - rotate the next 100 layers linearly at a 45 degree angle.
+360~100% - fill the model an infill with random direction at each layer.
-50%Z1cm - rotate one centimeter of infill by sinus function at a 180 degree CW.
+30/-10# - rotate the infill at height of 10 standard layers (if standard layer height is 0.2mm * 10 = 2mm) inverse linearly at a 30 degree angle.
+10L25%, -10l25%, -10L25%, +10l25% - fill the model with sine period with 10 degrees amplitude

Constant layer number instructions

There are 2 letter signs T and B that can determine the number of shell layers on top and bottom of model. It is useful for calculating skipping this amount to align the fill, or inserting the required number of horizontal solid bulkheads.
Examples:
B!, +30 - skip the first shell layers from rotate, then fill with 30 degrees turn each layer
+30/1cm, T - rotate one centimeter of infill linearity at a 30 degree, then skip the number of layers equal to the count of the upper shell layers without rotation

Solid layers into sparse infill instructions

The following instructions allow you to embed solid layers in a sparse fill. The following commands are available D S O M R. For their purpose, see above. It is possible to combine them with the rotation method and layer number constant - DT S/ M# OB...

Examples:
+30M3 or +90M/3 - fill whole model by solid infill with 30 degree turn at each layer
B!, 240M3, #25 - skip the first shell layers from rotate, fill model by 3 solid monotonic layers at 240 degree, then put 25 sparse layers by same angle
#14, +15O - put the 14 layers of sparse infill when put one concentric layer of solid infill with 15 degree turn
+30/1cm, ST - rotate one centimeter of infill linearity at 30 degree, then put solid layers equal to the count of the top shell layers

I can't post the entire package of changes yet, but this is just the beginning. These features do not affect the latest changes to the pattern rotation system. They are merely adding new functionality.
@pi-squared-studio pi-squared-studio marked this pull request as draft June 25, 2025 18:30
@pi-squared-studio pi-squared-studio marked this pull request as ready for review June 27, 2025 00:18
@pi-squared-studio
Copy link
Contributor Author

Added relative rotation of the fill according to the template.
Now you can specify both absolute angle values (0-360) and relative ones with a +/- sign in the template.
So far, it has been implemented for sparse infill.
image
In the future, we can discard the template input field by replacing the input field of the initial infill direction with this one. Because if enter the initial 45 into this field, then the entire infill direction will be positioned at this angle.

@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jun 27, 2025

In the further development of this idea, you can leave only one field defining the rotation of the infill.
When there is only one number in the input field, say 45, the entire infill will be printed at one angle.
If there is a sequence of positive integers in this field, an example is [45, 90, 135, 0...] , then the fill rotation will be performed by iterating through this sequence using a simple algorithm.

The template is a space or comma-separated instructions list of angles in degrees, e.g. '0, 90'.
The first instructions is applied to the first layer, the second one to the second layer, and so on.
If the instruction is an unsigned number between 0 and 360, the rotation will be absolute CCW when viewed from above the bed.
If the instruction contains a number with a [+] or [-] sign, the rotation will be relative to the previous angle, CCW or CW respectively.

@pi-squared-studio
Copy link
Contributor Author

some progress: accept the percentage values for full turn
image

@pi-squared-studio
Copy link
Contributor Author

Added possible to rotate a multiply layers
image
image

@pi-squared-studio
Copy link
Contributor Author

Dividing & Multiplexing Cycles
image
image

@pi-squared-studio
Copy link
Contributor Author

Implements the limitation of rotation infill by height (in cm, inches, feet and %of height)

  • add simple script for infill direction repeat
    image

@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jun 29, 2025

@SoftFever Ok. I have finished writing this code.
In the latest version, rotation both of sparse and solid infills has been added. Added the ability to enter once-executed instructions.
image
Due to the latest revisions of the main repository, there are minor inconsistencies, but they are not significant. As it is, the code works fine. If there are clarifications or additions, it would be better if I make them in the already combined project.

At this stage, I have left 2 fields infill_direction и infill_template_direction. But they can be combined later, as they carry repetitive functionality. You also need to look at the labels of these input fields for the correctness of the presentation. I outlined a brief summary in this post #9996 (comment).
Also note that height instructions cannot be used in the solid infill template. @... although, they can also be resolved.

I may have written too much in the code because I don't know all the features of C++ well. If possible, optimize this spelling. Thank you.

@pi-squared-studio pi-squared-studio marked this pull request as draft June 29, 2025 11:41
@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jun 29, 2025

#9954
#9890

@pi-squared-studio
Copy link
Contributor Author

redundancy test for input fields
image
image

@pi-squared-studio pi-squared-studio marked this pull request as ready for review June 29, 2025 22:10
@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 9, 2025

Examples of infilling on the standard cylinder of 22 mm height (110 layers):

Just angle
image

Rotate at each layer
image

Rotate each 50% of model height at 45 degrees
image
image

That same but with upward joints
image
image

The slice joint
image

Sine joints
image
image
image
image

Arcsine joints
image

Square and Cubic joints
image
image
image
image

Quarter circle joints
image
image
+45L50%, -45L50%
image
+45l50%, -45L50%
image

Random and peseudorandom joints
image
image

need for clean code in future
@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 11, 2025

Added multiply instructions and reduced some code

+10*3/5, -15* - repeat 3 times rotating of 5 layers by 10 degrees, and roll back by -15
image

@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 11, 2025

Add implementation of inserting solid layers into sparse infill. They also programmable!

+5/3mm, +30O#2 - add the 3 mm of sparse infill with turn of 5 degrees, next time put 2 concentric layers
image

@pi-squared-studio
Copy link
Contributor Author

@SoftFever
These are almost all the changes that I wanted to make to this code.
I'm sending it for implementation. If it gets delayed, I'll make a new clean branch a week later.

@SoftFever
Copy link
Owner

@pi-squared-studio my initial test looks good!
Meanwhile, can you take a look at the Copilot's code review? It looks legit to me :)

@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 16, 2025

It looks legit to me :)

Yes, that's right. And Copilot was right. It's just that when I was making the code, I left a few points unoptimized for testing, not for fast execution.

@pi-squared-studio
Copy link
Contributor Author

If you post this code, you will need to come up with the correct annotation for this algorithm. Look at this post #9996 (comment) - here I have collected all the commands in the latest edition.
I'm afraid that I won't be very good at it based on a different linguistic culture of presentation.

Another circumstance is the ability to enter both a complex command and a simple one when describing the insertion of layers with solid infill. You can write briefly, say +10S12, or you can +10S/12. Yes, in fact, this is the same command, and the additional "/" sign simply indicates how the rotation will be distributed among the solid layers. I have not yet decided how useful this knowledge will be to users, because such rotation will occur implicitly. And should these two definitions be left in this form, or need to reduced into one?

@pi-squared-studio pi-squared-studio marked this pull request as ready for review July 20, 2025 12:30
@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 21, 2025

@SoftFever
I've made some changes to the code. They were related to how the code correctly perceived this template. Now it works great in the nuances. I solved the problem of +10S12 and +10S/12 that I wrote about above. With a short instruction, now it's just that the infill is simply repeated a certain number of times, rather than being divided into parts as in the second case. I tried to write it all in the title post, which can serve as the basis for a wiki.
The code is now fully ready for implementation. I tried to create a Draft, but I'm wary of changing the main code, which can greatly complicate later implementation.
If you pick up the project, I would really appreciate if it happens. I'm not transferring to Draft. Just take this branch and close this PR. The only thing is, please check the spelling of the annotation and wiki. Maybe I wrote it all in very heavy language. Tell me if you need to make the right images for the wiki.
Thanks!

@SoftFever
Copy link
Owner

Hi @pi-squared-studio,
I made some changes to the PR.

  1. I renamed apply_model_direction to align_infill_direction_to_model and tweaked the description a bit to make it more understandable.
  2. I changed the data type of top_surface_direction and bottom_surface_direction to float so that they are consistent with other infill direction parameters.
  3. I fixed a bug that top/bottom_surface_direction didn't work as designed.

But I generally don't think the new top/bottom_surface_direction options make sense in most cases.
Solid infill(including top and bottom surface) directions are automatically interlaced to get the best strength and aesthetics. Making top/bottom surface adjustable will increase confusion and complexity(you need speicaly handle it so that it has the same behavior as before, which preferable in almost all use cases), and I failed to see any benefits.
Hence, we should remove it.
(Also, for the best practice of PR process, it's suggested to keep a PR focused on one main task in the future.)

@pi-squared-studio
Copy link
Contributor Author

pi-squared-studio commented Jul 24, 2025

Hi, @SoftFever
I looked at the code changes. In general, I agree on everything.
The only thing is, there used to be projects where it was necessary to orient the upper and lower surfaces for decorative purposes. I made the case of one Bluetooth speaker, where the direction of the monotonous fill should be vertical. To do this, the entire model had to be rotated 45 degrees, which in turn affected the direction of the inner fill. I think that having this feature would not be superfluous at least in expert mode.

@pi-squared-studio
Copy link
Contributor Author

@SoftFever
image
There is a question at this point. It seems that params.angle is preinstalled earlier, and therefore an additional rotation angle needs to be added here.

@SoftFever
Copy link
Owner

Hi, @SoftFever I looked at the code changes. In general, I agree on everything. The only thing is, there used to be projects where it was necessary to orient the upper and lower surfaces for decorative purposes. I made the case of one Bluetooth speaker, where the direction of the monotonous fill should be vertical. To do this, the entire model had to be rotated 45 degrees, which in turn affected the direction of the inner fill. I think that having this feature would not be superfluous at least in expert mode.

I see.
It's a niche requirement.
I believe it can be done with the existing options though.
Setting the desired "Solid infill direction" and turning off "Rotate solid infill direction" should give you what you're looking for.

@pi-squared-studio
Copy link
Contributor Author

Setting the desired "Solid infill direction" and turning off "Rotate solid infill direction" should give you what you're looking for.

Ok. I think that after combining such details, it will be possible to work out based on the experience of a wide range of users.

@SoftFever
Copy link
Owner

I will make the changes to remove these two options later

@SoftFever SoftFever changed the title Add some new non-overlapping functions for rotation surfaces/infills Add template metalanguage support for infill rotation template Jul 25, 2025
@SoftFever
Copy link
Owner

@pi-squared-studio
Everything looks good.
I will proceed with the merge now.
Please let me know if you notice anything wrong in my changes.
This will be an exciting new feature for the upcoming release!

In the meantime, could you please update the Wiki to include the metalanguage rule?
The Wiki documents are hosted here: doc

@SoftFever SoftFever added this to the 2.3.1 milestone Jul 25, 2025
@SoftFever SoftFever merged commit 1ef427f into SoftFever:main Jul 25, 2025
11 checks passed
@pi-squared-studio
Copy link
Contributor Author

@SoftFever
Okay, I'll try to get involved in this topic, but my English is very difficult for new topics that didn't exist before. I may be mistaken in the terms and description of the processes. Therefore, I allow for a very harsh postcorrection of everything described.

@RF47
Copy link
Contributor

RF47 commented Jul 25, 2025

wow!

GiacomoGuaresi added a commit to gingeradditive/OrcaSlicer that referenced this pull request Aug 7, 2025
* Add new machines

* profils fixes

* Update VS30ULTRA (0.4 nozzle).json

* accelerations removing

* Fixes

* Acceleration fixes

* Update .gitignore

* EXO/SH profils updates

* Update .gitignore

* Updates VOLUMIC profils

* VOLUMIC profils updates

* VOLUMIC profils update (v0.36)

* Delete Desactive.json

* Create desactive.json

* Add ironing fan speed control (SoftFever#9944)

* Internal bridge fan speed should be applied only if overhang bridge fan control is enabled

* Reduce duplicate code

* Add ironing fan speed control

* Add fuzzy skin painting (SoftFever#9979)

* SPE-2486: Refactor function apply_mm_segmentation() to prepare support for fuzzy skin painting.

(cherry picked from commit 2c06c81)

* SPE-2585: Fix empty layers when multi-material painting and modifiers are used.

(cherry picked from commit 4b3da02ec26d43bfad91897cb34779fb21419e3e)

* Update project structure to match Prusa

* SPE-2486: Add a new gizmo for fuzzy skin painting.

(cherry picked from commit 886faac)

* Fix render

* Remove duplicated painting gizmo `render_triangles` code

* SPE-2486: Extend multi-material segmentation to allow segmentation of any painted faces.

(cherry picked from commit 519f5ee)

---------

Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>

* SPE-2486: Implement segmentation of layers based on fuzzy skin painting.

(cherry picked from commit 800b742)

* SPE-2486: Separate fuzzy skin implementation into the separate file.

(cherry picked from commit efd95c1)

* Move more fuzzy code to separate file

* Don't hide fuzzy skin option, so it can be applied to paint on fuzzy

* Fix build

* Add option group for fuzzy skin

* Update icon color

* Fix reset painting

* Update UI style

* Store fuzzy painting in bbs_3mf

* Add missing fuzzy paint code

* SPE-2486: Limit the depth of the painted fuzzy skin regions to make regions cover just external perimeters.

This reduces the possibility of artifacts that could happen during regions merging.

(cherry picked from commit fa2663f)

* Update icons

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>

* Make the region compatible check a separate function

* Only warn about multi-material if it's truly multi-perimeters

* Improve gizmo UI & tooltips

---------

Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>

* Update 3mf key for fuzzy skin painting to match BBS (SoftFever#10169)

* Update OrcaSlicer_pl.po (SoftFever#10186)

* New Fill & Patterns Order (SoftFever#10055)

* New Fill Order

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

* Reorder Wiki

* Support infills grouped

* Update old rectilinear profiles into new ZigZag algorithm.

Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>

* Renaming compatibility fix + Rename Wiki

Co-Authored-By: SoftFever <softfeverever@gmail.com>

---------

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>

* Fix ubuntu build - Continous appimagetool (SoftFever#10190)

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>

* Fix build issue caused by renamed fill pattern (SoftFever#10197)

Fix issue caused by renamed fill pattern

* InnovatiQ Vendor Addition (SoftFever#10163)

* Added InnovatiQ Vendor Files

* Cover image corrected

* Corrected Texture Image

* Support Interface Pattern modified

* Fix file name casing

---------

Co-authored-by: MohanS <sibi.mohan@innovatiq.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>

* Replace DEPS_BITS with DEPS_ARCH (SoftFever#10183)

* Replace DEPS_BITS with DEPS_ARCH

* Restore missing DEP_MSVC_GEN

* STREQUAL

* STREQUAL

* Other cmakelists

* webview2 rename

* Disable resonance avoidance in calibration routines + Calibration Reorder (SoftFever#10174)

* Disable resonance avoidance in calibration routines

* Reorder Calibrations

* Moved Tolerance to Handy Models

* Feature: Fuzzy Skin Extrusion Mode (SoftFever#9878)

* Feature: Fuzzy Skin Extrusion Mode

This extension allows you to add new features to the fuzzy skin generator.

* Add auto switch to Arachne mode

* Move dialog to `update_print_fff_config` and update how `is_msg_dlg_already_exist` is used

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>

* Add template metalanguage support for infill rotation template (SoftFever#9996)

* Add some new non-overlapping functions for rotation surfaces/infills

I can't post the entire package of changes yet, but this is just the beginning. These features do not affect the latest changes to the pattern rotation system. They are merely adding new functionality.

* Added relative rotation of the infill according to the template.

* Update PrintConfig.cpp

* Update PrintConfig.cpp

* Update PrintConfig.cpp

* Add height limitation

* Both sparse and solid. +one-time instructions

* implementation v3

need for clean code in future

* + Multiply Instructions

* Add solid layers into sparse infill

* Update Layer.hpp

* Update PrintObject.cpp

* Update Tab.cpp

* Remove some bugs and increase quality

* rename apply_model_direction to align_infill_direction_to_model

* Change the data type of top_surface_direction and bottom_surface_direction to float so that they are consistent with other infill direction parameters.

* remove top_surface_direction and bottom surface_direction options

* clean code

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>

* Feature/add_snapmaker_u1_profiles (SoftFever#10225)

* add snapmaker u1 profiles

* tweak some parameters for U1

* Do not connect to default BBL device during app startup (SoftFever#10214)

* Do not connect to default device during app startup

* Connect to last selected machine automatically even if it's lan machine
Simplify default machine connection logic

* Select last machine automatically when available

* Check for LAN connection state after updating combobox selection.
This matches the logic of `SendPrint.cpp`.

* Avoid showing same error message multiple times until next connection attempt.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>

* update readme

* Adjust the CAUTION format to make it more visible, as there are more fake websites claim to be official (SoftFever#10230)

Update README.md

* add CLAUDE.md

* udpate locale

* include OrcaSlicer_profile_validator in nightly build (SoftFever#10233)

* include OrcaSlicer_profile_validator in nightly build

* build OrcaSlicer_profile_validator on Win

* create dmg

* fix / add  de locale (SoftFever#10236)

* fix many stings

* fix

* correct winget command --e (SoftFever#10198)

winget seems to accept -e or --exact.  Modified README.md to use --exact.

* Bug fix: avoid crossing perimeters (SoftFever#10185)

* avoid crossing perimeters

avoid crossing perimeters

Timelapse issue

Update GCode.cpp

Update GCode.cpp

Update GCode.cpp

Update GCode.cpp

* Update GCode.cpp

* Update GCode.cpp

Update GCode.cpp

* Update GCode.cpp

Update GCode.cpp

* Replace tab with space

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>

* Prevent collision: end load line at X(old+5) to avoid nozzle scratching (SoftFever#10193)

End load line at X(old+5) top prevent drip collision

* fix an issue that OrcaSlicer_profile_validator for Mac was not published to nightly build

* Introduce a new seam alignment option: Aligned back (SoftFever#10255)

* Introduce a new seam alignment option: spAlignedBack.

* feat: add ABS, PLA, PETg filaments by NIT (SoftFever#10205)

* feat: add ABS, PLA, PETg filaments by NIT

* feat: Set value of default_filament_colour to empty string

* Wiki Update 8 - Lorita (SoftFever#10094)

* Wiki Home

Fix process-others
VFA test

* Add wall GIFs and update documentation

* Quality Overhangs Wiki Basic

Update README.md
Update Home.md

* Better only one wall

* Add infill ghosting image and update wall order

* Updates process options

* Fix calibration step numbering in documentation

Corrected the step numbers in the calibration order list to maintain sequential order.

* Update Calibration.md

* Update wall and surface quality docs with images and details

* Revise Linux build instructions and restructure sections

Co-Authored-By: cefiar <cefiar@gmail.com>

* APA Clarify compatibility notes

Co-Authored-By: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>

* Removed Tolerance test from calibration guide. Keeped as note

Co-Authored-By: Noisyfox <timemanager.rick@gmail.com>

* Copilot Review

---------

Co-authored-by: cefiar <cefiar@gmail.com>
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>

* Fix a bug where the maximum line width limit is inconsistent across different checks.
Fixes SoftFever#10188

* Avoid cross perimeter improvements ported from BBS (SoftFever#10220)

* FIX: fix avoid crossing perimeters not work[github issue SoftFever#6597]

jira: STUDIO-11682

github: SoftFever#6597

Change-Id: Ib86fac93280504e0040f1cce44dad4d02f709c01
(cherry picked from commit 35afceb9a7f4e5a3baba97f054d0e6768e4f59cf)

* FIX: optimize avoid crossing wall

jira: STUDIO-11682

Change-Id: I49b6756a5d3aeb482c019813074d8f6f9cc3c6ef
(cherry picked from commit e9b7006db994d78b9153dedfd0f89447c941cb76)

* Sync with latest BBS code

---------

Co-authored-by: huicong.li <huicong.li@bambulab.com>

* Revert "Refactor stagger concentric seams (SoftFever#6432)"

This reverts commit bd8c2ff.

* Revert "Stagger concentric infill seams. (SoftFever#6184)"

This reverts commit 0286c36.

* Add 0.6/0.8 nozzle for tiertime printer. (SoftFever#10264)

* Fix Ironing/Support patterns (SoftFever#10278)

NoisyGoat

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>

* Fix broken freetype-2.12.1.tar.gz link

* Remap filament for pre-colored models (SoftFever#10303)

* Add a new feature to allow users to remap filament for a pre-painted model.

* Fix the color issues to support the theme

* clean up code

* Fix broken freetype-2.12.1.tar.gz link

* feat: support for multi heating zones

* feat: Remove softfever reference from pipeline

* feat: support for multi heating zones

* feat: update repository references from SoftFever to gingeradditive in workflows and source files

* Update translation catalog

* fix: restore pot file

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: migrate to GingerSlicer

feat: Rename project to OrcaSlicer4pellet and update related configurations

feat: Update SVG files to reflect Inkscape version 1.4 and enhance graphical elements

feat: Comment out app signing and notary steps in macOS build workflow; update artifact names to reflect project rename

feat: Update splash logo SVG and replace logo images

fix: Correct app copy path in build_slicer function to match new project structure

feat: Update project references to OrcaSlicer4pellet, including bundle identifier, executable names, and documentation links

chore: Update various project files for consistency and maintainability

feat: change color to #d72828

feat: change "Orca Slicer" to "Ginger Slicer"

feat: change logo

feat: change logo

fix: update artifact paths to use GingerSlicer instead of OrcaSlicer

fix: update build script to copy GingerSlicer.app instead of OrcaSlicer.app

feat: Update SVG files for OrcaSlicer

feat: add desktop entry for GingerSlicer

wip: change brand colors

wip: change brand colors

feat: remove other profiles

fix: update profile validator command in build workflow

feat: update deployment configuration to use repository and tag for nightly builds

feat: add GingerSlicer Flatpak manifest and metadata

fix: update macOS bundle name from OrcaSlicer to GingerSlicer

wip: change brand colors

wip: delete wiki

wip: change reference to GingerSlicer

wip: change reference to GingerSlicer

fix: pipeline release id

wip: remove custom profile

wip: remove BBL setup page

feat: remove calibration and project tab

feat: change preset for camera and gcode window

fix: minor fix

feat: update readme

wip: change cmake project name

fix: name into macosxbundleinfo

fix: mac pipeline

wip: fix missing cache reference

feat: disable flatpack

fix: dep with deps

fix: try fix pipeline

fix orcaslicer.rc

fix: windows pipeline

fix: mac pipeline

fix: condition of Create DMG without notary pipeline

try: fix orcaslicer Run

fix: OrcaSlicer_dep

fix: OrcaSlicer_deps

feat: implement Orca Profile Validator with custom preset generation

fix: typo Gingerslicer to GingerSlicer

fix: Create DMG without notary mac

* fix: image color

* add script for conveting color

* feat: update SoftFever version to 2.3.1.1

* Gingerslicer dev/change slicer field visibility

* feat: change visibility of the fields

* fix: some tab still visible witout parameter in

* fix: minor image color fix

* fix: change override visibility

* Gingerslicer dev/update profiles 19 07 25

* feat: update profiles for Ginger Additive

* feat: merge previous update

* fix: errors using achab

* fix: remove unused file and folder

* fix: errors in profile

* fix: comment out custom presets validation step

* feat: add workflow to promote nightly builds to release

* fix: update nightly artifacts download command in workflow

* fix: correct JSON formatting in fdm_machine_common.json

* fix: notification color

* fix: thumbnail and metadata

* fix: update version to 1.9.1.1 in fdm_machine_common.json

* fix: update version to 2.3.1.1

* fix: temperature in the GcodePreview by parsing the PRINT_START values

* fix: remove unused profiles

* fix: remove unused doc

* fix: SVG colors and merge errors

* fix: CreatePresetsDialog.cpp

---------

Co-authored-by: VOLUMIC <31067164+VOLUMIC@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
Co-authored-by: yw4z <ywsyildiz@gmail.com>
Co-authored-by: KrisMorr <154343071+KrisMorr@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: dewi-ny-je <2866139+dewi-ny-je@users.noreply.github.com>
Co-authored-by: InnovatiQ <info@innovatiq.com>
Co-authored-by: MohanS <sibi.mohan@innovatiq.com>
Co-authored-by: Jack Boswell <boswelja@outlook.com>
Co-authored-by: π² <pi.squared.studio@gmail.com>
Co-authored-by: Heiko Liebscher <hliebscher@idn.de>
Co-authored-by: Robert M Lugg <robert.lugg@gmail.com>
Co-authored-by: Simon <ziehmon@smtpd.de>
Co-authored-by: Kirill Ziuzin <kirill.zak@gmail.com>
Co-authored-by: cefiar <cefiar@gmail.com>
Co-authored-by: huicong.li <huicong.li@bambulab.com>
Co-authored-by: GuoGeTiertime <97820723+GuoGeTiertime@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@ianalexis ianalexis mentioned this pull request Aug 8, 2025
33 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants