Commit Graph
32 Commits
Author SHA1 Message Date
Hanif Koh e540bbcf35 Remove Unused Project Includes and Forward-Declare Where a Type Is Only Referenced
Generated with include-what-you-use and applied conservatively. Only OrcaSlicer's own headers, the ones under src/ and tests/, are removed or forward-declared; standard-library and third-party includes are left alone. An include is removed only when both the Release and the Debug configuration leave it unused, never from inside a conditional block, and never from a file with platform-specific blocks, which only gain includes. Files whose only use of a header sits behind a feature or debug macro (libvgcode's OpenGL ES and marker code, the ARACHNE/TESTS_EXPORT_SVGS debug output) keep their includes.

clonable_ptr.hpp gains #pragma once; it had no include guard and was only safe while Config.hpp was its sole includer.
2026-10-05 11:02:06 +08:00
Kris AustinandRodrigo Faselli 6e0f04815b perf: speed up G-code export by up to 7% via post-processing fixes (#16031)
Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
2026-10-03 13:29:55 -03:00
HanifKoh 8a6377f087 Add Missing Includes Across src/libslic3r (#16068)
* Add Missing Includes Across src/libslic3r

Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand.

* Make the libslic3r Headers Compile on Their Own

Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Left out: I18N.hpp, which errors on purpose when included from GUI code, and VoxelizeCSGMesh.hpp and SLA/bicubic.h, which nothing includes and which no longer compile at all.

* Add the Includes Missing From the Hand-Fixed libslic3r Headers

clang-tidy would not edit these headers while they failed to compile on their own, so the first pass skipped them. With the headers now self-contained, a second pass adds the rest.

* Keep Windows Setup Ahead of the Added libslic3r Includes

Print.cpp and Thread.cpp open with a _WIN32 block that has to come first; without the precompiled header, Print.cpp otherwise reaches windows.h through OCCT with NONLS defined and boost/regex fails. OpenVDBUtils.cpp and SLA/SupportTreeBuilder.cpp had includes inside #ifndef NOMINMAX, which libslic3r defines on Windows, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory.

* Re-Add libslic3r Includes After the Clipper2 2.0.1 Migration

Rebasing onto main took main's version of the files the Clipper2 migration rewrote, so their added includes are restored here, along with includes for main's new code. Clipper2's individual headers are now ignored by clang-tidy: they only build the Z variant through clipper2_z.hpp, which defines USINGZ first, so including clipper.core.h and the like directly broke ClipperZUtils.cpp.
2026-10-03 15:31:11 +08:00
SoftFever c03f4925a9 Apply per-variant cooling, ramming and temperature range on nozzle-rack slices
Fan speeds, multi-tool ramming, the tower interface and flush temperature
fallbacks and the custom G-code placeholders now use the extruder variant a
filament prints with on each layer, instead of reading by filament id.
2026-10-01 02:54:18 +08:00
Kiss Lorand e8115658e0 Fix overhang fan control when overhang slowdown is enabled (#15158) 2026-09-01 18:07:02 -03:00
Kiss Lorand 68ce4da19f Fix overhang fan speed bugs (#14788) 2026-07-25 18:38:21 -03:00
Ioannis Giannakas 3c8c667dbd Add "First layer fan speed" option (per filament) (#14270)
Implement First layer fan speed
2026-06-30 10:48:58 +01:00
1c8c7820c8 Initial attempt to make speed configs multi-variant
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: qing.zhang <qing.zhang@bambulab.com>
2026-05-21 09:04:27 +08:00
Ioannis Giannakas 3370e224b2 Cooling: add per-printer non-zero fan PWM floor and fix N=0 fan ramp override (#13715)
* Cooling: add per-printer non-zero fan PWM floor and fix N=0 ramp override
* updated parameter naming
2026-05-19 09:40:53 +01:00
Noisyfox 29addf5ca1 Fix issue that fan speed not reset to normal after ironing (#12595)
Fix issue that fan speed not reset to normal after ironing (OrcaSlicer/OrcaSlicer#11824)
2026-03-04 15:46:14 +08:00
Noisyfox 3a5a49b23d Merge branch 'main' into dev/h2d-2
# Conflicts:
#	src/slic3r/GUI/PartPlate.hpp
2025-10-14 19:43:33 +08:00
Azi 6feb99bd2d bugfix for Invalid speed "G1 F-2147483648" (#10944)
added non zero safety check for feedrate calculation
2025-10-12 22:03:38 +08:00
zhimin.zeng 8db3e3cd54 FIX: backend get the extruder id based on filament_map
Change-Id: Ib7679c0fc67336e462467dab9f5b4d4684d6eb19
(cherry picked from commit dcd9fd501354da33baea2adc0f645fabe8880cf1)
2025-08-24 23:18:02 +08:00
Noisyfox c00502638c Add ironing fan speed control (#9944)
* Internal bridge fan speed should be applied only if overhang bridge fan control is enabled

* Reduce duplicate code

* Add ironing fan speed control
2025-07-18 16:01:15 +08:00
Ioannis Giannakas 4e74aaf144 Enhancement: Enable separate internal bridge fan speed control (#7906)
* Separate internal bridge fan speed control

* Merge branch 'SoftFever:main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'SoftFever:main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge remote-tracking branch 'upstream/main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control

* Merge branch 'main' into Allow-separate-internal-bridge-fan-control
2025-02-09 21:53:57 +08:00
Noisyfox 6169b4fa2a Fix issue when the extruder do not have any adjustable extrusion 2024-10-24 21:27:46 +08:00
Noisyfox 4bb6525c4f Fix issue that total_time is not updated after slowing down 2024-10-24 21:27:03 +08:00
Noisyfox dc943eddaf Exclude movements before first extrusion from layer time calculation when dealing with layer cooling (SoftFever/OrcaSlicer#7171)
If layer starts with a color change, the full layer time will be much longer, which will trick the slicer to think this layer has enough cooling time.
However the actual filament extrusion time (the real "printing" part) won't necessarily have enough time to cool down, so if we don't do extra slowing down
before starting next layer, the filament could still be soft and lead to worse surface quality.
2024-10-24 17:24:09 +08:00
Vovodroid 0c63dd4bd0 Remove unused slow down proportionally code (#6405)
* Remove unused slow down proportionally code
2024-08-25 12:40:40 +08:00
Ioannis GiannakasandSoftFever 12861a6a3d Enhancement: Do not slow down external perimeters to meet minimum layer time (#5148)
* POC - Do not slow down external perimeters to meet minimum layer time

* POC - Do not slow down external perimeters to meet minimum layer time - rework

* Revert "POC - Do not slow down external perimeters to meet minimum layer time"

This reverts commit d84ff93f90.

* Dont slow down external perimeters to meet layer time target v2

* Reverted previous implementation

* UI fixes for dont slow down for layer cooling

* Update dont slow down outer walls naming convention

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-06-16 22:38:13 +08:00
EvandSoftFever d75bac2f01 make fan percentages a float (#3087)
makes fan percentages an int.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2023-12-12 21:56:20 +08:00
SoftFever aae647fc19 Properly pasrse toolchange 2023-09-09 13:14:10 +08:00
SoftFever 2a478ab4f9 post changes after merging BS1.7.4
Remove tracking etc..
2023-08-26 18:45:43 +08:00
salt.wei 989e4214c5 ENH: apply fan speed immediately after changing layer
What: As title. The original code is always apply
at the end of last object of last layer, whichi is before
layer change

Why: the fan spped will be skipped if the last object is
skipped. So we must move the layer time fan speed setting
after changing layer, where is common gcode block and does
not belong to any object.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I442f80e00778b524576210b451f81dd15e25e14c
2023-07-07 17:52:43 +08:00
salt.wei 766abf92fa ENH: add back use_relative_e for third party printer
Useless for BambuPrinter. But used by third party printer

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: Ib6a63e78816b25696c25952508f76c3d9221e363
2023-07-07 17:29:08 +08:00
qing.zhang 6a391de290 FIX: speed 0 on macOS 13.2 STUDIO-2265
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ia8d92f6a0f7d84c1216d9403793e5fa7671ee8de
2023-02-24 17:44:15 +08:00
qing.zhang 350adb6176 FIX: revert "FIX: fix adjust of cooling time"
This reverts commit 9e026a289542545d5f63cd72fb9416be1521ecc2.

This Revert "ENH: STUDIO-2221 adjust cooling time for each layer"

This reverts commit eb1fa5975eb7dc3ff832539e9bec5a04515ff2f9.

Change-Id: Iba8d0a1492b81922aad0d64df81c74cff5eabbb3
2023-02-22 20:09:17 +08:00
qing.zhang 0b0a1a3d48 FIX: fix adjust of cooling time
Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I5eae0ed7e53fddb18c99f510373ba5a687fd2c8e
2023-02-22 20:09:17 +08:00
qing.zhang 4b86b978d1 ENH: STUDIO-2221 adjust cooling time for each layer
sub filament change time from layer time to adjust
layer speed

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I2f1c41a36946765b74ecad58ce102abe98e00dac
2023-02-22 20:09:17 +08:00
salt.wei bd577fafb2 ENH: don't apply new fan speed until filament change finished
This patch can make sure that the cooling fan will not
be enabled during change fimanet.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I9f480b99116d62fe7522233b69b5bca209663821
2022-12-15 04:33:48 -05:00
salt.wei 4ef50375cb ENH: resume addition cooling fan after filament change
During filament changing, additional cooling fan may
be closed to reduce strings. Force to resume after
changing filament.

This logic is same with part cooling fan.
So no side effect.

Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I207c8692dbe5b0450ed0a3d11c4c9b70eda0e28c
2022-10-20 19:34:37 +08:00
lane.wei 1555904bef Add the full source of BambuStudio
using version 1.0.10
2022-07-15 23:42:08 +08:00