Commit Graph

158 Commits

Author SHA1 Message Date
lane.wei f518d6804a ENH: CLI: support multi-extruder slicing
1. add slicing errors for gcode in unprintable area, also for filament mapping
2. use common area for auto arrange
3. support filament_map/filament_map_mode related params
4. add logic to check the filament maps before slicing
5. uptodate support multi-extruder
6. switch new machine/filament support multi-extruder
7. process config params support transfer between mult-extruder and
   single-extruder
8. improve machine-limit logic support multi-extruder
9. flush-volume support multi-extruder
10. add default params to support auto mapping slicing

jira: no-jira
Change-Id: Ice39a365841322ddb586d39c56ff923626822528
2025-03-22 20:59:21 +08:00
Noisyfox a21779dd30 NEW: Port of Cura's multi-material interlocking (#5775)
* 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: zhimin.zeng <zhimin.zeng@bambulab.com>
jira: none
Change-Id: I81cacddf46ad5921a7a2a23fff07cc17addceb6f
2025-03-22 20:58:36 +08:00
xun.zhang 3cfb49a1b9 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
2025-03-22 20:58:12 +08:00
zhimin.zeng fec7129437 FIX: modify unprintable_filament_ids should regroup
jira: none
Change-Id: Ifb8105f6e301aaed9ca4e62a37b9d3a1616e755b
2025-03-22 20:53:56 +08:00
zhimin.zeng ed61d1d31b FIX: fix flow ratio calib bug for single extruder printer
2. modify the filament_flow_ratio to nullable
jira:none

Change-Id: I3f0569ee643cfe9473c6029ca0e04f4b80c8332e
2025-03-22 20:53:54 +08:00
xun.zhang 2ebd14667e ENH: add some params for multi extruder
1. Nozzle Volume and Nozzle Type support multi extruder now

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie171b5105bd3830db3a992cadd365b785008c47a
2025-03-22 20:53:19 +08:00
xun.zhang 92fa0ff010 ENH: add ConfigOptionPointsGroups
1.Add extruder printable area

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I753344917a67e3d8ac361c15c3d374b5ef951d21
2025-03-22 20:53:18 +08:00
xun.zhang 7d4d5f2c9b ENH: change some params to nullable
jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ifd91da26d089c78e2d5036e145b7f4404535b7a5
2025-03-22 20:52:56 +08:00
zhimin.zeng 8b2a94ed5f ENH: wipe tower support nozzle change
jira: none
Change-Id: I398a508cbc8d02644b60e504405392254329ef10
2025-03-22 20:52:23 +08:00
xun.zhang b49d4ca153 ENH: save multi extruder state in gcode processor
1.Save multi extruder state in gcode processor
2.Add machine exturder change time
3.Fix some naming issues

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I9785331290515eeb908ff0ff01aad5aac44212d9
2025-03-22 20:51:44 +08:00
xun.zhang 16cadec565 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
2025-03-22 20:32:27 +08:00
zhimin.zeng da32b878b3 ENH: add extruder_ams_count behavior
1. save to appconfig and project setting
2. use it to group
jira: none

Change-Id: Id4048fc1b47f6904b2e9c0154aaa3a2b03590437
2025-03-22 20:32:27 +08:00
lane.wei 3179fd416e ENH: config: add logic to apply params to object/region config with multi-extruder
JIRA: no-jira
Change-Id: Ieab98cd8d031e5ca82a3aad2d0b89d8ae4a794f1
2025-03-22 20:32:26 +08:00
lane.wei 0434853bf3 ENH: config: remove unused custome_defined logic
also improve project_embedded
1. remove unused is_custom_defined
2. improve project_embedded to support multi-extruder diff

jira: no-jira

Change-Id: I1db28c3cfd59ccc31c6855af30305396c71c4e9a
2025-03-22 20:32:26 +08:00
zhimin.zeng 326d7d28b4 FIX: fix build error
jira: none
Change-Id: I97df69b728fc3871b7c33e1fd3ba068e741d51c7
2025-03-22 20:32:25 +08:00
lane.wei 7b7ebf1b95 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
2025-03-22 20:32:25 +08:00
lane.wei 603f93d97f ENH: config: add nill load/save logic for user config
Change-Id: I8da6c5b345cc088862f2c720aeb742b9617ff3e7
2025-03-22 20:31:45 +08:00
lane.wei 5defd2b7c3 ENH: config: add extrudrer variant check logic
when load config from 3mf

Change-Id: I946ba777853e479418fcd1b49209f75ed41f33f3
2025-03-22 20:31:44 +08:00
zhimin.zeng dcd9fd5013 FIX: backend get the extruder id based on filament_map
Change-Id: Ib7679c0fc67336e462467dab9f5b4d4684d6eb19
2025-03-22 20:31:44 +08:00
zhimin.zeng 366a14d8f7 FIX: parameters modify of printer preset
Ensure correct behavior when modifying parameters of printer preset

Change-Id: Ic627a8e202bf4224b742336cc43ac611ddc5c997
2025-03-22 20:31:43 +08:00
lane.wei e770043c4d ENH: add stride in get_index_for_extruder
JIRA: no-jira
Change-Id: If529296bf6d35edc35aee3ff497184dce70332d1
2025-03-22 20:31:43 +08:00
lane.wei bbc4d701bf ENH: add check logic of filament_map when Print::Apply
Change-Id: Ibab353c4b16183611d63d75bcdf5f370cb578f21
2025-03-22 20:31:43 +08:00
lane.wei e9081ba8d4 ENH: filament: delete filament_extruder_id related logic
jira: no jira
Change-Id: Ie0d8e31a6a3eef0400b3ba6238f817bad4daca24
2025-03-22 20:31:43 +08:00
zhimin.zeng 5b0d525957 ENH: Display and modification of printer presets
Change-Id: I6a38704864fd4994a845686a299bec67f1b9b9b3
2025-03-22 20:31:43 +08:00
lane.wei b0e3ab037e ENH: config: add filament_maps in partplate
Change-Id: I1183830788e703f1d33a8a4b620b58b822283dd4
2025-03-22 20:31:43 +08:00
zhimin.zeng 6fbad9ed33 ENH: flush_volume support multi_extruder and fix bug
Change-Id: Id6b041f71ee6e55e68a6937f24ce791caac8e708
2025-03-22 20:31:42 +08:00
zhimin.zeng 8b2544df41 FIX: Use the same api to get the extruder id
jira: none
Change-Id: I05b3040b176374deee3e95bc52364fe7b33bb257
2025-03-22 20:31:42 +08:00
lane.wei 03058ba29d NEW: config: add logic in config system to support multiple extruder
1. add nozzle_volume_type
2. add extruder_variant_list
3. add printer_extruder_variant,print_extruder_variant, filament_extruder_variant
4. construct backend fullprintconfig

Change-Id: I50659634e2cde363112ff5ded6c199d7548c6f2f
2025-03-22 20:31:42 +08:00
zhimin.zeng 6b09cfee71 FIX: modify parameter type of process preset
jira: none
Change-Id: I5c973a29e5b983e3f480d55aeeb2b14d13e950ee
2025-03-22 20:30:22 +08:00
zhou.xu c74a769c14 NEW:add "extruder_only_area" textures for
double extruder machine
jira:none

Change-Id: Iaf4118fb00641537838dae7cc5fdaaf07ccc9851
(cherry picked from commit a8d6c9fe8976dbcb79c1f89efb7107073cb17856)
2025-03-22 20:21:52 +08:00
qing.zhang 4d4883953d FIX: adjust plate type eume
Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: If5bab050cc4d243d1ac414b91d1b6e10fa95dad2
2024-11-12 15:35:32 +08:00
Arthur 1656cf084b FIX: simple way to avoid collision of seq printing
A simple way to avoid collision of seq printing by object of A1 series
printers, at the cost of reduced area of sequential printing.
Add new option extruder_clearance_dist_to_rod.

jira: STUDIO-8137
Change-Id: I033220e090b071c76f5c5be0d0b471e428d807ec
2024-11-12 15:35:32 +08:00
Arthur 7697eb3dc8 ENH: improve tree supports
1. speedup organic tree support by using parallel for intersection of bed area
jira: STUDIO-8451
2. add extra wall for hybrid tree support's tall branches
3. disable circle fitting for tree support. This feature produces inconsistent
   circles for tree supports.
4. expose the option tree_support_branch_diameter_angle. Tree supports'
   strength can be improved by increasing this value.

Change-Id: If3688ca895df98a77f6ca538077daf8fe94e53f1
2024-10-28 20:51:35 +08:00
qing.zhang 63be8a61fb ENH: filamet shrinkage
Github: 2769

This feature ported from superslicer

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ic92d248aa90222e6f74530f01876cc14944f2444
2024-10-28 20:51:35 +08:00
qing.zhang f1d774f6c0 ENH: apply filament scarf seam
Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ia565da8d280c0f7e51097f1d601240376c1e380e
2024-10-15 15:50:26 +08:00
qing.zhang 872978d61b ENH: Revert z smoothing function
Jira: none

Change-Id: I067033c3beb4b29b8da11ff0c9f12b126bcf61dc
2024-10-15 15:50:26 +08:00
qing.zhang 78572cbff8 ENH: add supertrack plate
Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I89017c9933597ee035aa20ba3852db6f629f5e20
2024-10-15 15:50:26 +08:00
Mack 92c85a13d0 NEW: add brim ear gizmo
jira: STUDIO-7378
Change-Id: Ib6b5dbd3b113981612b05e01e59f62054ff0b654
(cherry picked from commit 37120830a2f958f464719db1f5d0180882bc4095)
2024-10-15 15:50:26 +08:00
qing.zhang b52a9de509 ENH: smooth z dir speed and layer time
Jira: none

generate continuitious outer wall speed in z dir
generate continuitious layer time in z dir

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I0ade543d2f9ee40f5cd65c533eb261d85e5eaa34
2024-10-15 15:50:26 +08:00
qing.zhang 4b23b42b22 ENH: ironing inset
Jira: 7391

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I2233b267ad7e3eb22ed9c232a89b7679173c7b34
2024-10-15 15:50:26 +08:00
qing.zhang af7f87c238 ENH: add option to decide if overhang join cooling
Jira: 7414

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I223c8b72d025947652a1f36c31c1a0adc3c9d180
2024-10-15 15:50:26 +08:00
qing.zhang 04beaae9e3 ENH: imprve scarf seam
Jira: none

fix missing wipe while avoid acrossing wall on

set wipe speeed base on previou path
first implement by orca

add slope gap params

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I45655f087f5a165b52b1007ef5afe0b20d0b13a4
2024-10-15 15:50:26 +08:00
qing.zhang 0efa2db823 ENH: imprve overhang quality
Jira: none

add speed transition between discontinuity speed
detect bridge-wall and only use bride speed on bridge wall
fix the bug that not use overhang speed while support z
distance is 0 on arachne mode

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: I72a1504544fe1ed7bd184ca073bd1b52cd2dcd75
2024-08-26 17:23:33 +08:00
Arthur 4bebe9eb6a ENH: remove tree_support_brim_width
This option is duplicated with raft_first_layer_expansion. Now we
use raft_first_layer_expansion for all support types. Note: the name starts with raft, but it actually controls first layer expansion of both raft and support.

jira: none
Change-Id: I3d2bfc86d36c87d75f0bc1d077c6855f668b19b6
(cherry picked from commit 241a77bd6371330aff58b92b63d066054d4920ce)
2024-08-26 17:23:33 +08:00
jianjia.ma 6540855ff7 ENH: Improve CrossHatch transation layers
jira: 6701

Change name from Flippingline to CrossHatch.

Reduce noise, improve speed by 6.5%. Improve transation layers by
gradually increasing rotation angle and overshoot the transation
layer while direction changed.

Change-Id: I17fcc45b409074d121bf5bb5702e15553d925b51
2024-04-23 20:07:49 +08:00
jianjia.ma 1389862ad8 NEW: FlipLines infill
jira:6701

New infill pattern that combine block lines infill and switching layers for smooth transition.

Change-Id: I2608a2d39b14efcdfe9d39a9437280da350b94c0
(cherry picked from commit 8d0a09c8b763dfc924cbba9913c241e6afadbc7f)
2024-04-23 20:07:49 +08:00
andrewboktor 449cb0b27c ENH: Full re-write of spiral vase
Github: 2744

* Practically full re-write of spiral vase
- Adds transition out to prevent sharp edge at the top of spiral vase.
- Adds XY interpolation
- Adds option to turn XY interpolation on/off

* - Increasing E to 5 decimal digits (I observed uneven flow with less than that)
- Excluding all travel moves (I saw a bug where somehow we ended up with travel moves within the print so excluding all travel moves)

* - max_xy_smoothing is now configurable, default is 200% of nozzle_diameter
- fixed no-op travel moves in the middle of spiral that now show up as defects when Smooth Spiral is enabled!

* - Avoiding namespace pollution
- Fixing dist_XY == 0 bug

---------

Co-authored-by: Andrew Boktor <aboktor@microsoft.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
Change-Id: I4e982b6192f730037ff497389454313af3905e82
2024-04-10 20:03:44 +08:00
xun.zhang 7116c5a7c5 ENH: add default params for long retraction
1. Only auto calculate flush when enabled
2. Add default params for long retraction
3. Disable filament override for unsupport machines

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib5d51505b58101839527e944f9a237483951f9fe
2024-04-08 19:50:03 +08:00
xun.zhang abb2356e6e ENH: refine long retraction ui
1. associate button display logic
2. Add valid range tip
3. seperate the printer into three types

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ie14c8746eb20456dacd5c129a5449c1e7c7db372
2024-04-08 19:50:03 +08:00
zhimin.zeng 309010fff2 ENH: add precise_z_height
jira: none
Change-Id: Idb9fcf0063e773f1531a49961478460b91ded10f
2024-04-08 19:50:03 +08:00