Commit Graph

166 Commits

Author SHA1 Message Date
qing.zhang
a6c4e22e15 ENH: move extra params
Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ib5c4d203c6585b9946d8703d9f33477780afb275
(cherry picked from commit 78079dacd1c4f14c171668d6c7895e72dd96c52a)
2025-09-12 17:43:07 +08:00
jiangkai.zhao
b9d9602581 ENH: adjust the interaction of the rib_wall
jira: none
Change-Id: I2462240304fc4ce4a1047d7c8ac818c209f15200
(cherry picked from commit 6567642e938a4edd4197535418aeb8be0bbc7c55)
(cherry picked from commit 1f4d2cf714e70ab27ceaaeb75df02650f527b570)
2025-09-12 15:32:47 +08:00
jiangkai.zhao
16731a90b0 ENH:add rib wall wipe tower
jira: none

Change-Id: I9699cc74e206851284949f89230e986435b9e1b7
(cherry picked from commit eabfa6b272590698886ecec33b89207605b91993)
(cherry picked from commit 1d33d1c37d4dada1cd1129ff16fe46d07933ad26)
2025-09-12 15:31:11 +08:00
zhimin.zeng
b2c59ea0e4 FIX add prime_tower_skip_points parameter
jira: none
Change-Id: I696d6ca5d9bccf16b48110157cd6ec44839a05e8
(cherry picked from commit 9b5bbebf311c2d8d68ec89aeda3ddae2b267692e)
2025-09-07 21:55:17 +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
SoftFever
6ae89f7d9b rename 2DHoneycomb and 2DLattice to LateralHoneycomb and LateralLattice (#10423)
* rename 2DHoneycomb and 2DLattice to LateralHoneycomb and LateralLattice

* more renaming
2025-08-17 23:49:06 +08:00
Rodrigo
202875a4bb TPMS-FK Infill ( Triply Periodic Minimal Surface Fischer Koch S) (#10360)
* seteo inicial

* version inicial

* Update FillTpmsFK.cpp

* marching squares

* Multiline support

* density adjusted

* tuning

cleaning

* symplify points

* optimization

* smoothing

* center offset contour

* icon

* bugfix 1

* reverse tbb scalar field bug fix

* safety

* Update Icon

Co-Authored-By: yw4z <28517890+yw4z@users.noreply.github.com>

* Update FillTpmsFK.cpp

* delete allptpos

---------

Co-authored-by: yw4z <28517890+yw4z@users.noreply.github.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-08-10 23:10:35 +08:00
π²
3d16c7f4c8 Feature: Fuzzy Skin Extrusion Mode (#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>
2025-07-25 15:36:18 +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
discip
46af00aa01 hide Reverse threshold when not editable (#10161)
* make **`Reverse threshold`** inactive when **`Reverse only internal perimeters`**  is activated

* Update ConfigManipulation.cpp

* 100%% => 100%

Also fixed a typo along the way.
2025-07-18 14:06:48 +08:00
Ian Bassi
f45155a966 Enable ironing and shell options for spiral vase mode (#10115)
* Enable ironing and shell options for spiral vase mode

Co-Authored-By: Kaarel Pärtel <kaarelp2rtel@gmail.com>

* Remove boolean

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

* Tab fix

* bool has_top_shell

* Fix some missing toggle lines

* Update Fill.cpp

* unnecessary check.

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

---------

Co-authored-by: Kaarel Pärtel <kaarelp2rtel@gmail.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-07-14 21:17:13 +08:00
Rodrigo
ea7cfbc050 Multiline infill support for 2D lattice and 2DHoneycomb patterns (#10060)
* 2d Laticce multiline

Update FillRectilinear.cpp

* Optimize remove overlapp

* 2D Honeycomb multiline

* Calculate distance at midpoint
2025-07-05 18:42:28 +08:00
Rodrigo
a8141ef360 Infill Line Multiplier (#9432)
* Infill Line Multiplier

* Modular Offset Function

* Lightning multiline

* Crosshatch Multiline

ipCrosshatch

* cleaning

Cleaning

clean2

* 3d Honeycomb

cut poliline ends

* Fill Tpmsd Multiline

Fill Tpmsd Multiline

* Update Multiline function

multiline funcion simplify

* Update FillTpmsD

* FillHoneycomb

* Update src/libslic3r/PrintConfig.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix Honeycomb Multiline

Simplify polylines in honeycomb infill generation

* Improve multiline infill support and pattern simplification

Moved multiline infill application after pattern translation and simplification in Fill3DHoneycomb, and added multiline support to FillAdaptive. Updated honeycomb and 3D honeycomb infill to simplify polylines to 5x line width. Extended GUI and config to support multiline for Adaptive Cubic infill pattern and clarified max value comment.

minimum changes

Co-Authored-By: Ian Bassi <12130714+ianalexis@users.noreply.github.com>

* Increase multiline fill spacing in honeycomb infill

Adjusts the spacing parameter in the multiline_fill function to 1.1 times the original spacing, potentially improving infill distribution or print quality.

* Refine fill_multiline tooltip and pattern support logic

Updated the tooltip for the 'fill_multiline' parameter to improve clarity and punctuation. Refactored the logic in ConfigManipulation.cpp to clarify which infill patterns support multiline infill.

* better management of non supported infill patterns

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
2025-06-30 23:07:33 +08:00
Ian Bassi
3f7d5b85fd Enable toggling of surface density and overlap options (#10013)
* Enable toggling of surface density and overlap options

Added toggling for 'top_surface_density', 'bottom_surface_density', and 'top_bottom_infill_wall_overlap' fields in based on shell presence.

* un toggle shell overlapping option

---------

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
2025-06-29 23:03:01 +08:00
SoftFever
88fb8187d9 Allow specifying rotation patterns for Sparse and Solid infill (#9924)
* 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)
* Remove code related to classic overhang speed

* Remove `overhang_degree` and `curve_degree`
2025-06-20 23:01:09 +08:00
Noisyfox
b9cce6c179 Ironing support interfaces (#9548)
* Generate support interface iron extrusion

* Always ironing last

* Add options

* Move ironing speed to speed tab

* Don't iron places that are covered by upper support layers

* Disable support interface spacing settings when support ironing is enabled

* Update text
2025-06-19 15:19:05 +08:00
Henk
0010dc6bb4 Add 2D honeycomb infill pattern (#9483)
* Add 2D honeycomb infill pattern

* Reverted change of 2D lattice infill void area estimation

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-18 08:48:48 +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
Ian Bassi
6423d521cd Fix Line Infill with no anchor (#9768)
* Fix Line Fill with no anchor

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

* Disable anchor option for Line Infill

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

---------

Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: Henk <40023052+elektrohenk@users.noreply.github.com>
2025-06-01 13:34:44 +08:00
Alexandre Folle de Menezes
57a6f61349 Fix the spacing on the original english strings (#9596)
* Remove extra spaces between words

* Remove extra spaces after punctuation

* Remove extra spaces before punctuation

* Always needs a space after punctuation

* Always needs a space before parens

* Remove trailing spaces before newline
2025-05-16 16:31:58 +08:00
Kiss Lorand
1a5b238ba4 Gizmo shortcuts (#9604)
* Gizmo shortcuts

* Delete invalid comment
2025-05-12 22:11:39 +08:00
Alexandre Folle de Menezes
43b2acba36 Use "°C" instead of "degree" to avoid ambiguity (#9597) 2025-05-11 15:06:30 +08:00
Kiss Lorand
cc525608e9 Organic tree support GUI fix (#9587) 2025-05-10 12:50:12 +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
Kiss Lorand
5c0afd5e84 Skirt settings GUI fixes (#9325) 2025-04-13 13:32:18 +08:00
Alexandre Folle de Menezes
66a71d4db0 Fix the temperature unit name to "degree Celsius" (#9224)
The correct temperature unit name is "degree Celsius"
2025-04-05 14:13:33 +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
Alexandre Folle de Menezes
74d9a88480 Remove unnecessary trailing spaces (#8752) 2025-03-08 13:41:31 +08:00
Noisyfox
a9a6f45f08 Merge branch 'main' into dev/support-paint-vertical 2025-02-23 15:50:21 +08:00
SoftFever
0ec13678e4 Merge branch 'main' into bugfox/infill-pattern-options 2025-02-19 19:39:06 +08:00
Noisyfox
185fb3cb26 Initial port of Brim ear gizmo
Cherry-picked from bambulab/BambuStudio@92c85a13d0

Co-authored-by: Mack <yongfang.bian@bambulab.com>
2025-02-17 11:19:07 +08:00
Kaarel Pärtel
830c1ac928 Add minimum flow rates for spiral vase transitsions (#8333)
Add minimum flow ratios for spiral vase transitsions

Currently when starting the spiral vase the extrusion rate is ramped
from 0 to 100% on the first layer and from 100% to 0% on the last layer.
In some cases it can lead to underextrusion at the beginning and end of
the spiral.

This change adds minimum flow ratio options for the beginning and the end
of the vase. This means that instead of ramping from 0% to 100% it
instead ramps from for example 20% to 100%.

This issue has been reported in SuperSlicer
https://github.com/supermerill/SuperSlicer/issues/4195
2025-02-17 08:55:23 +08:00
Eric Maglio
5145707801 Add "2D Lattice" fill pattern for lightweight aircraft structures (#8293)
* Add 2D lattice infill pattern

* Add state invalidation behavior for lattice infill angles

* Update SurfaceFillParams methods to account for lattice infill angles

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-02-12 08:39:29 +08:00
Noisyfox
2d92ea6320 Don't disable solid infill pattern option unless no infill & top/bottom surfaces (SoftFever/OrcaSlicer#8370) 2025-02-11 10:56:00 +08:00
Ioannis Giannakas
229a826aa7 Enhancement: Internal Bridge angle override (#7908)
Internal Bridge angle override
2025-02-09 22:00:16 +08:00
Arthur
3e7e4df7ce ENH: precise tree support wall count
Change the behavior of "tree support wall count" option, let it control precisely.
0 means auto.

jira: STUDIO-8068
github: 4780
Change-Id: I6d1a64cff9b121f5c0a3e910c5ddbfe6db198687
(cherry picked from commit a557bbe758cd352fa9bb48323995ed2c90737577)
2025-02-08 11:34:42 +08:00
Arthur
fd3ed419c2 NEW: add support_object_first_layer_gap option
jira: STUDIO-6202
github: #3521

Change-Id: I6f1ce9f5312e9482c0f5bf6ac3215861c501106c
(cherry picked from commit 83027d923a6e67fa0013e5d9f627283c68e996de)
(cherry picked from commit 29da3bc441a194d5b83ce267fe24ebf3f3811133)
2025-02-08 11:34:30 +08:00
Noisyfox
cc9f29c463 Rename smsOrganic to smsTreeOrganic 2025-02-08 11:34:22 +08:00
Arthur
14ecfac592 ENH: open support wall count for normal support
1. open support wall count for normal support
  Enabling this option makes normal support stronger and gives
  better overhang quality, but also more difficult to removal.
  Jira: STUDIO-5192
2. fix a bug where tree support (hybrid style) may get overlapped
  extrusions near the walls.
3. fix a bug where raft layers can't be 1 in tree support
  Jira: STUDIO-5261

Change-Id: Iadc0c67a9b50b5b221c8e83d5aa22ed282018cf8
(cherry picked from commit c0bb0084e386cb70ed6e16edf93190e4b38f5b90)
(cherry picked from commit bf93fd02fb92912563796a2eec1ccfb4b0ed7fa9)
2025-02-08 11:34:18 +08:00
Nick Johnson
fd0b2547f2 Add support for structured noise (perlin) fuzzy skin (#7678)
* Add support for perlin noise fuzzy skin

* Support multiple types of coherent noise

* Updated tooltips for more clarity.

* Reorder options as suggested by @discip

* Fix accidental removal of &

* Move libnoise to deps

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-01-27 22:45:16 +08:00
Vovodroid
7a5746b1ae Support threshold overlap (#6606)
* Support threshold overlap

* Update tooltip
2025-01-23 18:01:38 +08:00
Diogo Santos
7834f78c90 Feature Ironing Inset added (#7969) 2025-01-08 11:35:08 +08:00
Ioannis Giannakas
e62d6a3b68 Enhancement: ERS - segment length - convert to float (#7400)
Enhancement: ERS segment length - convert to float

To allow splitting of line segments down to 0.5mm for improved external surface finish.

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-01-05 23:23:11 +08:00
Ioannis Giannakas
bb009eaa99 Enhancement: ERS - Option to limit ERS to external perimeters and overhangs only (#7399)
* Option to limit ERS to external perimeters and overhangs only

* Label name

* Label update

* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'SoftFever:main' into Limit-ERS-to-external-perimeters-and-overhangs

* Merge branch 'main' into Limit-ERS-to-external-perimeters-and-overhangs
2025-01-05 23:19:00 +08:00
Noisyfox
8709f22597 Allow reverse on odd without detect overhang wall (SoftFever/OrcaSlicer#6920) 2024-09-27 09:24:21 +08:00
SoftFever
65fc14209d Fix a bug that wipe tower has missing extrusions when ramming is disabled (#6894)
* Fix a bug that wipe tower has missing extrusions when ramming is disabled.

* hide "Prime all printing extruders" for SEMM printers
2024-09-25 19:34:18 +08:00
Henri van der Riet
5b0ddbd5f7 merge conflicts 2024-09-08 01:04:19 +02:00
SoftFever
415bedef94 Enabling object skirt. (#6487)
Implements individual object skirts, as requested in  **Individual skirts when printing by object. #3486** and  **Skirt around each object when using "by object" sequence #2652**

Now skirt type could be
![image](https://github.com/user-attachments/assets/532ecd91-fe3e-4bdb-b22f-ef28439ab7a6)

This PR based on several refactorings, including  **Configure skirt start point #6490** PR. To make review more easy each step was committed individually. Obviously them could be separated to different PRs or dropped.

I removed `prime_extruder && first_layer && extruder_id == first_extruder_id` as explicit object skirt is available.

Open question : do we need both common and object skirt together, probably with separate loop number?


All four combinations are possible.

Print by layer, common skirt:
![image](https://github.com/user-attachments/assets/5509f10b-ed3b-4243-8763-7ddcb101c67a)

Print by layer, object skirt:
![image](https://github.com/user-attachments/assets/deca3ca6-8bf7-4e5b-a356-2f5dd6e81566)

Print by object , object skirt:
![image](https://github.com/user-attachments/assets/7d1b2ddc-e61f-4d77-9ed4-e33fdd62d290)

Print by object , common skirt (any meaning?):
![image](https://github.com/user-attachments/assets/e7883eb4-b1a3-4158-a7f4-ce0658bc1939)
2024-09-07 23:46:54 +08:00
SoftFever
220213e846 Revert "Fix typos and grammar (#6638)"
This reverts commit 1afc1372bc.
2024-09-07 20:04:17 +08:00