Commit graph

231 commits

Author SHA1 Message Date
xun.zhang
05bf5c114b ENH: filament map params switch to global param
1.Add more filament map modes
2.Filament map and mode are set as project config
3.Plate filament map is only valid when plate filament mode is
manual

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I33b2f853e0b77b9d605be1f2f1172b44df43da15
(cherry picked from commit e45f8c6dc2146e1e31a1c21e8aaada540af112d0)
2025-09-06 23:49:11 +08:00
zhimin.zeng
a7c90b8dfe FIX: the brim cannot generated on left/right only printable area
jira: none
Change-Id: If1a46773cdbd66ea3ab8484dc5d58ce5bbd3ded2
(cherry picked from commit f127f95335056035f6967b0dff6532d12fe6d316)
2025-09-06 23:02:03 +08:00
zhimin.zeng
257fc86ca9 ENH: wipe tower support filaments that do not adhere to each other
jira:none

Change-Id: Ia52340f4e8bdb34791cb2019e9763bddfbc8dc5f
(cherry picked from commit e1e0de6efb667a2a198be47d75c90b0f2f0a4324)
2025-09-06 22:19:32 +08:00
xun.zhang
07148d2dfd ENH: set filament retract params even if nil
1.Always set filament retract params to filament_num size.In
gcode export module, we can always use filament idx to get
retract params

2. add logic in update_filament_maps_to_config to update the
   retraction related params which can be overiden by filament

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ia45dd1401aa3565d062d5da1c9f4a2ba8966f693
(cherry picked from commit 4b083d8d8220b8f65a1b804688cb2d6e238eb4e6)
2025-08-28 11:09:05 +08:00
zhimin.zeng
34ebd54680 ENH: add print_outer_first for wipe tower
and modify the min_depth_per_height
jira: none

Change-Id: I4860df661b4dd1f66677112d14e60560bc4a73be
(cherry picked from commit 00810d685d01a91b5373f3315413aaef1fe49cbc)
2025-08-24 23:18:29 +08:00
xun.zhang
e273cf9cf2 ENH: seperate reorder from toolorder construct
1.Only do reorder if requseted.In by object mode,we only need
to collect the filaments in the object for filament grouping

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id88f2449c6d3c5d45b9ff87513308d997fa72da1
(cherry picked from commit 7b5818fe6c538123373243ec8dfedc3c2fa68e6d)
2025-08-24 23:18:29 +08:00
zhimin.zeng
5935b75fe5 ENH: Add extruder_printable_height
to support different printable height of multi_extruder
jira:none

Change-Id: I265c65e15fc8f598c3456556557bb6977b5de820
(cherry picked from commit 933adbaaf0eaf361e39f131dd5536dca91214d43)
2025-08-24 23:18:29 +08:00
xun.zhang
d941f80483 FIX: filament group crash in cli mode
1.Always do filament group to get correct filament map

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie4e61c310f6c0cfeacb2a49c4f065f9674b6a35f
(cherry picked from commit 242554557b1ecd72355841826af707580fc583b6)
2025-08-24 23:18:28 +08:00
xun.zhang
d7af75359f ENH: save filament sequences in gcode result
jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I79c2eb4002c72568d487df417c914ab0b8a14a67
(cherry picked from commit a289370b19e78693698db388d4057e25ba285d6b)
2025-08-24 23:18:24 +08:00
xun.zhang
e1ebe832dd ENH: refine filament group algorithm
1.Use max flow network to handle limit
2.Support setting master extruder id
3.Fix the issue in the KMedoids algorithm where data is overwritten
after each retry.

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Idd2bedf39f61e7a65eb4199852f60b8fbebe0a7d
(cherry picked from commit 3cfb49a1b9dc2c76066ec441f1028f99a4bf99c4)
2025-08-24 23:18:19 +08:00
xun.zhang
dcfa224cf2 ENH: do another map for ams filaments
1.If the group result differs little in flush,we will choose the one
that best fits the ams filaments

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Icd147b406e3494c841ef13564ad1b1231ad798fd
(cherry picked from commit 0b95bdd9d950918ea6979da6b4d62b2d2cd25b99)
2025-08-24 23:18:18 +08:00
zhimin.zeng
72d758c3b0 FIX: modify unprintable_filament_ids should regroup
jira: none
Change-Id: Ifb8105f6e301aaed9ca4e62a37b9d3a1616e755b
(cherry picked from commit fec7129437fc781b918ae1819c280440ea3fb54b)
2025-08-24 23:18:16 +08:00
xun.zhang
e77d2abf47 ENH: add tpu check when printing by object
jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I366aa8387dfc8d1c94fe836ee4898424d04737c3
(cherry picked from commit f39eabfd9fac3e3abf6c360a74a73abf453778bb)
2025-08-24 23:18:14 +08:00
zhimin.zeng
135b39526e ENH: Add gcode check for multi_extruder
jira: none
Change-Id: Iebc43e608c4509eb62b280af2d401fa9e0e089ba
(cherry picked from commit c75c10e312b8d0bd5404d92db88c95a9e6186bc1)
2025-08-24 23:18:14 +08:00
xun.zhang
7bd16a3ca7 ENH: add filament cluster algorithm
1.Add new KMediods algorithm
2.Consider physical and geometric printables
3.Refine code structure

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I1412835c3c6380f9cedb44ff6914004365bba889
(cherry picked from commit c53a35856d8d1cbd3a632a8510f1ddfdf9117106)
2025-08-24 23:18:13 +08:00
zhimin.zeng
0ff33f8f7e ENH: support tpu for multi_extruder
jira: none
Change-Id: I556804aadac00406e7214b86f7925170a90c55ce
(cherry picked from commit ede9f90a792f3f39e82916543efaf187ce80d66c)
2025-08-24 23:18:13 +08:00
zhimin.zeng
3cbaac7669 FIX: slice status error when print by object
jira: none
Change-Id: Iaa8453cbf79a38984cdae085418165287fee21b1
(cherry picked from commit e5d2ea39094369742e5d562709f52d16ca08aa73)
2025-08-24 23:18:11 +08:00
zhimin.zeng
1ada437979 FIX: enhance filament_map auto manual behavior
1. auto mode dragdrop is not allowed
2. not display filament_map when there is no result in auto mode

jira:none

Change-Id: I0800e0d832e27fe459a17bb1aa829b5e72d0ee8f
(cherry picked from commit 9ee85bef34aaabe7a4cef251f07e77f9af693a2f)
2025-08-24 23:18:11 +08:00
zhimin.zeng
955bb4dea8 ENH: wipe tower support nozzle change
jira: none
Change-Id: I398a508cbc8d02644b60e504405392254329ef10
(cherry picked from commit 8b2a94ed5f8b757ccc4919b9182f3d8edaf767fd)
2025-08-24 23:18:10 +08:00
xun.zhang
8331f8eba8 ENH: add manual grouping mode stats
1.In auto mode,display the statistics of auto mode and single
extruder
2.In manual mode,display the statistics of manual mode and auto mode
3.Support by object mode

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: If54c4db79f33d5278c0f18d01ab0518e8660f9c7
(cherry picked from commit 2dbc5c939666e294c805ee4bf33ec09976688be3)
2025-08-24 23:18:08 +08:00
xun.zhang
067d1484ab ENH: add filament saved by multi extruder
1.Add filament flush,filament change count reduced by multi
extruder

NTOE: cases when printing by object haven't been handled

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iaaea5f8ffae2345df5a6f1dc605342d835974d48
(cherry picked from commit ad65cdb909b29210117f690a119ef76b70373da4)
2025-08-24 23:18:08 +08:00
xun.zhang
cc4c03d76f ENH: add grab length
1.During the filament change, the extruder will extrude an extra length
of grap_length for the corresponding detection, so the purge volume can
reduce this length.

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I14f55a3200c1dd48b1603e50280d0c29e1319ebe
(cherry picked from commit 16cadec565f987e6baae97428d5392c1f8e7ad39)
2025-08-24 23:18:07 +08:00
zhimin.zeng
a9bec75ea2 ENH: add extruder_ams_count behavior
1. save to appconfig and project setting
2. use it to group
jira: none

Change-Id: Id4048fc1b47f6904b2e9c0154aaa3a2b03590437
(cherry picked from commit da32b878b3d7ca95ae5c4786102848c1e8a5ab2d)
2025-08-24 23:18:07 +08:00
zhimin.zeng
c34eb170f1 NEW: Add FilamentMapDialog
support drag drop to modify the filament map
jira: none

Change-Id: I0ed3180a0fa8e95e7c871bb039eb844faccd1344
(cherry picked from commit 67f67d76889668fdd80ae5e496b6cbca5f771a43)
2025-08-24 23:18:07 +08:00
xun.zhang
aee14d307a FIX: wrong flush logic
1.Fix flush calc logic
2.Rename m_extruder in GCodeWriter

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I38f023fbad983305632ca62cbfb3909759013c25
(cherry picked from commit f1b0805ed13eb94d6eb61e12330db3d628c0241b)
2025-08-24 23:18:05 +08:00
zhimin.zeng
2ff3b46a7e FIX: fix build error
jira: none
Change-Id: I97df69b728fc3871b7c33e1fd3ba068e741d51c7
(cherry picked from commit 326d7d28b47017bdbd98873a6437ef84116291ba)
2025-08-24 23:18:05 +08:00
lane.wei
22ce2ebc9a ENH: config: add the extruder variant apply logic in Print::Apply()
we need to keep the original values and update after pre-slice
jira: no-jira

Change-Id: I232d3c43340b4a23bc42121bd05380746e736f20
(cherry picked from commit 7b7ebf1b959ba5c967baff30fb226c808a2e7d44)
2025-08-24 23:18:05 +08:00
zhimin.zeng
e2c3926c76 ENH: support recommended filament map when print by object
1. support recommended filament map when print by object
2. placeholder_parser support function filament_change
3. extruder_id of filament_map is start from 1

Change-Id: Ide8019cd4a165a25972f22706ff685c3005aa031
(cherry picked from commit b42d94e1d05236b8b7b2e65b4a24810eecf040cb)
2025-08-24 23:18:03 +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
zhimin.zeng
a94b0e3dba ENH: Add recommend filament maps method
Change-Id: I3945a8b9f0a57e10a1d230003f21c9877cc5f342
(cherry picked from commit 8c8c9a967b032a270a60e6cf075fe41a6f329e1c)
2025-08-24 23:18:02 +08:00
lane.wei
aba8c12d07 ENH: add check logic of filament_map when Print::Apply
Change-Id: Ibab353c4b16183611d63d75bcdf5f370cb578f21
(cherry picked from commit bbc4d701bf0f492566fb0ebefbf286630ae2136d)
2025-08-24 23:18:02 +08:00
zhimin.zeng
84dc2d8835 ENH: flush_volume support multi_extruder and fix bug
Change-Id: Id6b041f71ee6e55e68a6937f24ce791caac8e708
(cherry picked from commit 6fbad9ed33b2868a2fffbebdc3a98926431a1093)
2025-08-24 23:18:01 +08:00
SoftFever
c86eb27675 Fix a bug where the maximum line width limit is inconsistent across different checks.
Fixes #10188
2025-07-30 21:22:40 +08:00
Noisyfox
50e64d5961
Add fuzzy skin painting (#9979)
* SPE-2486: Refactor function apply_mm_segmentation() to prepare support for fuzzy skin painting.

(cherry picked from commit 2c06c81159f7aadd6ac20c7a7583c8f4959a5601)

* 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 886faac74ebe6978b828f51be62d26176e2900e5)

* 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 519f5eea8e3be0d7c2cd5d030323ff264727e3d0)

---------

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

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

(cherry picked from commit 800b742b950438c5ed8323693074b6171300131c)

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

(cherry picked from commit efd95c1c66dc09fca7695fb82405056c687c2291)

* 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 fa2663f02647f80b239da4f45d92ef66f5ce048a)

* 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>
2025-07-18 16:01:25 +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
SoftFever
88fb8187d9
Allow specifying rotation patterns for Sparse and Solid infill (#9924)
Some checks are pending
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run
* SPE-2405: Add Zig Zag infill that is rectilinear infill but with a consistent pattern between layers.

This Zig Zag infill is inspired by the Zig Zag infill in Cura.

Change-Id: I798affa99f4b5c3bd67f47643e67530fb7c3e0cb
(cherry picked from commit 2808d04d5deef6f99f9618648e46f11de03efc98)

* Add Cross zag and locked-zag for shoes

Ported from BambuStudio

* wip

* sparse infill roratation template

* solid_infill_rotate_template

* remove rotate_solid_infill_direction

* hide sparse infill rotation template for non applicable infill pattern

* hide solid_infill_rotate_template for non supported solid infill patterns

* update icon

* support empty string for ConfigOptionFloats deserialize

* fix build errors

---------

Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
2025-06-22 23:10:35 +08:00
Noisyfox
7cbd0d2b74
Remove classic overhang speed code (#9934)
Some checks failed
Build all / Build All (push) Has been cancelled
Build all / Flatpak (push) Has been cancelled
Publish docs to Wiki / Publish docs to Wiki (push) Has been cancelled
* Remove code related to classic overhang speed

* Remove `overhang_degree` and `curve_degree`
2025-06-20 23:01:09 +08:00
Noisyfox
fe4a72ec94
Upgrade clipper & improve multi-thread performance (#7177)
Some checks are pending
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run
* Clipper: Verify range of int32 coordinates on input.

Cherry-picked from prusa3d/PrusaSlicer@fa7debf49d

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: Optimized PointInPolygon() to calculate cross products
 with int64s instead of doubles.

Cherry-picked from prusa3d/PrusaSlicer@9dca8403fe

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.

Cherry-picked from prusa3d/PrusaSlicer@9cde96993e

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* use tbb::scallable_allocator for Polygons and ExPolygon::holes
to better scale on multiple threads

Cherry-picked from prusa3d/PrusaSlicer@b67ad6434d

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed compilation on GCC and CLang

Cherry-picked from prusa3d/PrusaSlicer@b3b44681a9

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Remove clipper2 which is not used

* Removed shiny profiler from clipperlib

Cherry-picked from prusa3d/PrusaSlicer@7e77048593

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: Further optimization of memory allocation using scalable_allocator.
ClipperLib: SimplifyPolygon() - changed default winding number to positive,
      added strictly_simple parameter.
ClipperUtlis simplify_polygons() - removed "remove_collinear" parameter

Cherry-picked from prusa3d/PrusaSlicer@a7e17df25f

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* ClipperLib: emplace_back() instead of push_back().

Cherry-picked from prusa3d/PrusaSlicer@2e150795b1

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed issue in a 32bit clipper, where IntersectPoint() checked for
the Y coordinate of the calculated intersection point for validity,
but the Y coordinate was already rounded to 32bits, thus an overflow
may have in rare cases masked invalidity of the result.

Cherry-picked from prusa3d/PrusaSlicer@b39c33414f

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Fixed Vojtech's out of boundary assert in Clipper library.

Cherry-picked from prusa3d/PrusaSlicer@0a202dcff3

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>

* Update clipper to 6.4.2.

Cherry-picked from prusa3d/PrusaSlicer@b8b3cccb40

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

* Try fix cmake opencv

---------

Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
Co-authored-by: Lukáš Hejl <hejl.lukas@gmail.com>
2025-06-18 17:50:44 +08:00
Vovodroid
b259ee22b3
Disable SAFC and retract for Hilbert curve (#9592)
Some checks are pending
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run
* SAFC flow for rectilinear/monotonic only and Hilbet curve retract

* Refactor

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-15 20:50:34 +08:00
Alexandre Folle de Menezes
e13ec786d5
Fix english strings punctuation mistakes (#8901)
Some checks failed
Build all / Build All (push) Waiting to run
Build all / Flatpak (push) Waiting to run
Publish docs to Wiki / Publish docs to Wiki (push) Has been cancelled
* Fix punctuation of enumerations

* Add missing '?' at the end of questions on hints

* Add periods after error messages

* Add punctuation to all tooltips

* Add missing periods on the pt-BR translation
2025-06-15 16:12:03 +08:00
anjis
ecfe53e488
The multi-color printing wipe tower now includes the Bambu RIB wall feature (#9881)
* Add new Bambu RIB wall feature, including only the rib wall generation algorithm.

* Fix Linux compilation errors.

* Attempt to fix flatpak build

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-15 14:53:35 +08:00
Noisyfox
4ae4634976
Fix tree support bed exclusion area calculation (#9633)
Fix tree support bed exclusion area calculation (SoftFever/OrcaSlicer#9624)
2025-06-01 13:18:03 +08:00
Alexandre Folle de Menezes
d37f1b6a81
Fix english strings consistency (#8881)
* "non zero" -> "non-zero"

* "Z hop" -> "Z-hop"

* "works" -> "is working"

* "version at least x" -> "version x or higher"

* "printing job" -> "print job"
"to print on" -> "printing on"

* "is not find" -> "was not found"

* "boundary of plate" -> "plate boundaries"

* "toolchange" -> "tool change"

* "colour" -> "color"

* "cancelled" -> "canceled"

* "can not" -> "cannot"

* "gcode" -> "G-code"
2025-04-26 19:59:49 +08:00
Rodrigo
8cdc9c02df
Junction Deviation Machine Limit (#9234)
* Junction Deviation Machine Limit

jd 3

JD menu 2

JD operativo

limpieza

final

* default JD print menu without warnings

* to fix multiple instances

* Only at first layer

* Calibs upgrade

* Shown on Marlin2

Shown on Marlin2
CodeCleaning

* Update Calibration.md

* set on writer

---------

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2025-04-15 21:49:17 +08:00
Benjamin Stürmer
a16b8e4963
Add PETG-GF filament type (#8960)
* Add PETG-GF filament type
2025-03-22 22:59:47 +08:00
Alexandre Folle de Menezes
1ba7f18b90
Mark strings missing from translation (#8757) 2025-03-09 14:14:27 +08:00
Ioannis Giannakas
ec213e98fb
Introduce option to control one wall draft shield (#8562)
* Introduce option to control number of skirt walls after first layer

* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer

* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer

* One wall draft shield options refactor

* Merge remote-tracking branch 'upstream/main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer

* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer

* Renamed to single loop draft shield

* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer

* Merge branch 'main' into Introduce-option-to-control-number-of-walls-on-skirt-after-first-layer
2025-03-08 16:48:07 +08:00
anjis
38fb975d2a
Launching and directly loading GCode will result in missing information. (#8745)
Fix the issue where launching the software and directly loading a GCode file fails to display inner and outer wall information.
2025-03-08 14:01:16 +08:00
Noisyfox
a9a6f45f08
Merge branch 'main' into dev/support-paint-vertical 2025-02-23 15:50:21 +08:00
SoftFever
12fb6db8ef
Fixed a bug that flash matrix affects multi tool's wipe tower (#8408)
disable/ignore purge_in_prime_tower for multi tool machine
2025-02-14 23:38:51 +08:00