Commit Graph

130 Commits

Author SHA1 Message Date
Ian Bassi
2397886582 Reduce Orca weight: Resources to Draco (#12194)
# Description

Transforming internal 3D Files to DRC to reduce orca size

## Calibs

(Not counting temperature_tower)
Original 6,01 MB
Converted 1,57 MB

- Mesh (STL/3MF) to LossLess DRC
	- SCV-V2 116kb -> 15kb
	- fast_tower_test 66kb -> 9kb
	- ringing_tower 172kb -> 22kb
	- pressure_advance_test 124kb -> 16kb
	- tower_with_seam 2kb -> 1kb
	- retraction_tower 1.726kb -> 97kb (done at 25, if 0 = 212kb)
	- ~~temperature_tower~~ Updated, fixed, wider range and Draco in: #12103 5.075kb -> 485kb
	- vfa 1.453kb -> 179kb
- Step
	- SpeedTestStructure 1.312kb -> 86kb
		- Imported:
			- Linear Deflection: 0.002
			- Angle Deflection: 0.25
		- Exported as LossLess DRC

## Handy Models

Original 4,66 MB
Converted 1,53 MB

- STL/3MF to LossLess DRC (Maybe reduce the bit depth???)
	- 3DBenchy 2.417kb -> 570kb (done at 25, if 0 = 1.340kb)
	- calicat 43kb -> 6kb
	- ksr_fdmtest_v4 128kb -> 74kb
	- Orca_stringhell 63kb -> 37kb
	- OrcaToleranceTest 758kb -> 94kb
	- Stanford_Bunny 755kb -> 187kb (done at 25, if 0 = 316kb)
	- Voron_Design_Cube_v7 34kb -> 21kb

## Bit used

After some test with a lot of models and all possible combinations it's safe to say that >20 is BondingBox and mm3 volume the best it can.
So i used 25 just as a safe value in:

- Stanford_Bunny
- 3DBenchy
- retraction_tower

<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/bb5000cf-c1fa-4153-af2f-691ea59bc254" />
<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/f38e3528-0d05-4621-984e-f107a0eec91e" />

## MultiPart 3MF

Didint change them, too much trouble for small changes.
2026-02-09 10:48:29 +08:00
Maeyanie
48bf68a917 Add support for Draco (.drc) format (#10681)
* Add read support for Google's Draco (.drc) format.

* Fix build on Linux

* Use boost instead of fstat.

* Switch to boost memory-mapped file to save RAM and potentially improve performance.

* Trim trailing whitespace.

* Initial Draco write support.

Currently always exports with 16-bit precision and speed 0 (best compression).
The back-end function does have arguments to specify them, it's just not hooked into the GUI.

* Add Draco to the About dialogue.

* Fix Linux compile (hopefully)

* Add an option to associate DRC files on Windows.

* Implement a Preferences option to set Draco position quantization bits

* Update src/slic3r/GUI/Preferences.cpp

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>

* Some slight changes to ianalexis's suggestion.

* Implement a create_item_spinctrl() function for numeric inputs, and use that instead of create_item_input().

* Move "bits" to inside the spinctrl box.

* Refactor following yw4z's feedback

* Update src/slic3r/GUI/Preferences.cpp

Co-authored-by: Ian Bassi <ian.bassi@outlook.com>

* Change to 0 bits as the default setting for Draco export precision.

* Change to a lossy checkbox and a bits field with a range of 8-30.

* Proper SpinInput code from yw4z

* Revert "Proper SpinInput code from yw4z"

This reverts commit 7e9c85f31a0d776860690595b71441498c2034d1.

* Revert "Change to a lossy checkbox and a bits field with a range of 8-30."

This reverts commit d642c9bcc0c51b35bf915e04f35d9991c8485ddd.

* Redo preferences based on SoftFever's feedback

* Refactor to minimize code duplication

* Fix padding

* Improve Draco export quality level tooltip clarity

Clarify that 0 means lossless compression (not uncompressed),
document the valid lossy range (8-30), and better explain the
tradeoff between file size and geometric detail.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
2026-02-06 18:27:17 +08:00
Kiss Lorand
e495933587 Brim: optionally generate brim from Elephant Foot Compensation outline (#11760)
* Brim can follow EFC outline

* Optimization

* Update Spanish EFC brim description

Adopt reviewer-proposed wording from RF47.

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

* Tag Orca specific changes

Tag Orca specific changes vs. Bambu using the comment //ORCA: . This helps when reviewing merge commits from upstream Bambu so we don't end up causing regressions when pulling in commits from upstream

* Tooltip update

---------

Co-authored-by: RF47 <RF47@users.noreply.github.com>
Co-authored-by: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com>
2025-12-29 09:35:44 +08:00
Ian Bassi
8310424599 Add Cali Cat handy model (#11663)
Added the Cali Cat STL file to handy models and updated the GUI to include 'Cali Cat' as a selectable option in the handy model submenu.

Co-authored-by: davidzhen <3886830+davidzhen@users.noreply.github.com>
2025-12-18 12:25:59 +00:00
Ian Bassi
4ff5a6134f Fix: Replace with STL to Replace with 3D file: Support STEP (#11637)
* Replace with STL to Replace with 3D file: Support STEP

Enhanced the replace logic to support STEP (.stp, .step) files, including user-configurable mesh settings and dialog, while maintaining backward compatibility with STL and other formats.
Updated the menu label and tooltips to 'Replace 3D file' for clarity.

* Update 'STL' references to '3D file' in UI and logs

Replaces user-facing text and log messages referring to 'STL' with '3D file' for broader file type support and improved clarity in the menu, status messages, and logging.

* Merge branch 'main' into remplace-with-stl
2025-12-14 13:20:14 +08:00
Matthew
778b301060 Allow 'Change Type' to be used with Multiple Parts Selected (#11544)
* Initial changes allowing you to change the type of multiple parts at once by selecting them all.

* Removed second occurance of Change type in right click menu

* Ready to go feature change

* Remove accidental file creation

* Removing excessive std::cerr

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-12-13 22:36:47 +08:00
Alexandre Folle de Menezes
42d063fc8d Fix spacing and punctuation issues (#11244) 2025-11-17 09:35:53 +00:00
Alexandre Folle de Menezes
ef8615f286 Fix "..." at the end of "Replace with STL" menus (#11247) 2025-11-08 00:32:02 +08:00
nilshasler
5cb26bd707 Replace all with stl (#11145)
* Add "Replace all from STL" command
this operates on the currently selected plate or on the selection

* Add more translations for "Replace all from STL"

* build fix

* "Replace all with STL" also works with multiple selected plates

* fix build

* replace all from stl: better error handling and a nicer status message box

---------

Co-authored-by: Nils Hasler <hasler@thecaptury.com>
2025-10-29 16:30:23 +08:00
Vovodroid
3fd0ffd589 Add instances (#6237)
* Add instances

* - Added a new menu item for converting instances to objects,

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-10-26 16:13:14 +08:00
Noisyfox
e0aacec6c0 Disable filament merge option if not SEMM 2025-10-24 19:43:23 +08:00
Noisyfox
634a514866 Disable filament delete option if not SEMM 2025-10-24 14:51:06 +08:00
zhou.xu
0b19be98cb FIX:Added a centering function to the text menu, but lost it during the upgrade process
jira: github 7828
Change-Id: Idb3739313f506fbe475cf6c4ca96c7eade9292a6
(cherry picked from commit 8267f5fdca53fb172b64ebb24407a26b94fdecff)
2025-10-03 22:26:48 +08:00
chunmao.guo
1fae302606 FIX: enable copy param from modifier parts
Jira: STUDIO-12269
Change-Id: I7c4877d712b7678c33d6855e1de9dca9897ce6c0
(cherry picked from commit 1ad68b38e20a34372fcc1d4abe605a300abeae22)
2025-09-24 11:01:00 +08:00
chunmao.guo
f5b1b4dfc5 FIX: paste all of object settings
Change-Id: I32681190b20a2392069f6da5059feda070b312d1
Jira: STUDIO-12194
(cherry picked from commit 1a90c581c41b4d5cb35f6eece3aafbc55f2af97b)
2025-09-23 17:19:27 +08:00
chunmao.guo
ff255a3343 ENH: copy/paste object settings (menu)
Change-Id: If5f6f75102fbd43f652a96d01f9edd4676fa3152
Jira: STUDIO-11666
(cherry picked from commit 59cee48fbf1d06482c96ef6576a1fb5b33f2b621)
2025-09-23 16:38:50 +08:00
Noisyfox
3f2dad133f Merge remote-tracking branch 'upstream/main' into dev/h2d
# Conflicts:
#	resources/profiles/BBL.json
#	src/slic3r/GUI/AmsMappingPopup.cpp
#	src/slic3r/GUI/MediaFilePanel.cpp
#	src/slic3r/GUI/Plater.cpp
#	src/slic3r/GUI/StatusPanel.cpp
2025-09-16 14:46:40 +08:00
xun.zhang
a877b1ced8 ENH: update some sentences and refine ui
jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ibba2d6c880fcb810f861cf06eb7a30a512cbbacf
(cherry picked from commit 5195e824814a1ee38d789f331ec86e73807d412a)
2025-09-10 15:00:25 +08:00
chunmao.guo
7f9ef78eba FIX: something
Change-Id: I2923786337f97f4297b0444522c620891aa2ad90
Jira: STUDIO-9725 filament menu delete icon
Jira: STUDIO-9785 StaticGroup border color
Jira: STUDIO-9716 update badge icon
Jira: STUDIO-9815 click printer/bed panel for combobox
Jira: STUDIO-9867 label with for single noozle
Jira: STUDIO-9739 ams page up/down
(cherry picked from commit 1cde0b844a97f3420db4999927f05a833b92b0fb)
2025-09-10 10:43:06 +08:00
zhimin.zeng
5ddd2203a9 FIX: fix some translation and style issues
jira: STUDIO-9777 & STUDIO-9726 & STUDIO-9717 & STUDIO-9720
Change-Id: I05e6df6bb1416988a1862fc589058241d5344a58
(cherry picked from commit d833ab7d48729b527748662872df1ec33567b5ab)
2025-09-10 07:25:19 +08:00
Alexandre Folle de Menezes
6d020e7792 Update strings for keyboard shortcuts (#10399)
* Update strings for keyboard shortcuts
2025-09-09 21:48:42 +08:00
xun.zhang
f1eebaea8f ENH: some tip logic optimize
1. Only check printablily if have explicit filament map
2. Refine some sentences

jira:STUDIO-9753,STUDIO-9727

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I2fc3aa2276dc6f514c50ac2fcaf9509f41e778f3
(cherry picked from commit 73f92d27dab667c8893ab96e47f3832ce9d2de60)
2025-09-09 17:16:41 +08:00
SoftFever
b7efcdb787 [Feature] Add a new feature that allow user to insert extra solid infills (#10611)
* refactor Infill rotation template

* clean up comments

* set default solid_infill_rotate_template to empty

* Fix an issue that infill_direction solid_infill_direction not working as expected

* Add Extra Solid Infill Feature
Introduced a new feature to insert extra solid infills at specific layers for enhanced strength in 3D prints.

* fix doc error

* fix image name

* support "#K" for Explicit Layer List

* update wiki
2025-09-03 22:16:31 +08:00
liz.li
afe96ca17c ENH: filament preset edit menu should not change to self
jira: new

Change-Id: Ia8eb3db05f83932d2eb0b8ef2ba8014e99c8e057
(cherry picked from commit 12932832ae793b142f66e2a9c6d9a5fd819e4125)
2025-08-24 23:18:19 +08:00
liz.li
87632cb595 ENH: refine dual extruder related UI details
jira: new

Change-Id: I63dd6278f3e7d22336482dba0f178150ebe55f1d
(cherry picked from commit 73c05eee3bbcbed6fc5909db638fa4bac9a75bfc)
2025-08-24 23:18:19 +08:00
chunmao.guo
7559b0844c ENH: filament actions and dual extruder filaments
Change-Id: I12a83f29c96887fc910976ac8e025c4f1508d945
(cherry picked from commit 0065ea986fc41132df43cca6704c8c98318e6b71)
2025-08-24 23:18:02 +08:00
SoftFever
ceaaf2e3e1 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
π²
1fac1a1681 Add template metalanguage support for infill rotation template (#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>
2025-07-25 20:29:08 +08:00
Ian Bassi
45bfd7dcab Disable resonance avoidance in calibration routines + Calibration Reorder (#10174)
* Disable resonance avoidance in calibration routines

* Reorder Calibrations

* Moved Tolerance to Handy Models
2025-07-25 15:21:22 +08:00
yw4z
2d187a91fe Dialog for Clone (#9897)
* init

* update

* Update CloneDialog.cpp

* fix focus
2025-07-06 11:34:47 +08:00
Jonathan Dyrekilde Sommerlund
ac30ebd303 Top/bottom surface pattern density (#9783)
* Create top surface density option

* Update tooltip

* Specify what 0% top infill means

* Add density for bottom layers

* Discourage users from using top/bottom density incorrectly

* Fix percent don't need translation

* Fix incorrect indentation

---------

Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
2025-06-23 10:28:21 +08:00
SoftFever
e375bfc2e9 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
990136d5ae 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
Henk
72aea068d5 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
Alexandre Folle de Menezes
30087a1680 Fix the spelling/grammar on the original english strings (#9487)
* Fix the spelling/grammar on english strings

* Fix the spelling/grammar on english strings, part 2
2025-06-01 19:32:36 +08:00
Alexandre Folle de Menezes
cf71e4f2c7 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
Noisyfox
8519b09ab8 Merge branch 'main' into dev/support-paint-vertical 2025-02-23 15:50:21 +08:00
Eric Maglio
95c170e33b 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
Ioannis Giannakas
978434b6a3 Enhancement: Internal Bridge angle override (#7908)
Internal Bridge angle override
2025-02-09 22:00:16 +08:00
Arthur
e793556a2a 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
(cherry picked from commit 7697eb3dc8f87204d28e6be9adaf55dfcdadbc74)
2025-02-08 11:34:46 +08:00
Arthur
5796eed512 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
Vovodroid
49a25a75c8 Support threshold overlap (#6606)
* Support threshold overlap

* Update tooltip
2025-01-23 18:01:38 +08:00
Diogo Santos
c00bda7b75 Feature Ironing Inset added (#7969) 2025-01-08 11:35:08 +08:00
Vovodroid
0adc5d9c0f Warnings: remove empty code (#6577)
* Warnings: remove empty code
2024-09-07 18:18:35 +08:00
Ioannis Giannakas
ee7b694d80 Combined infill max layer height (optional) parameter (#6401)
* Combined infill max layer height parameter

* Combine sparse infill - allow % over nozzle diameter too.

* Updated defaults and tooltips

* Update PrintConfig.cpp
2024-09-07 16:20:46 +08:00
Vovodroid
491f360dfd Reduce warnings: remove unused variables (#6499)
Removed unused variables
2024-08-23 00:02:58 +08:00
SoftFever
ab3d04312b Revert "Fix Compile Warnings (#5963)"
This reverts commit b83e16dbdd.

Found regressions like auto orientation didn't work anymore after this change, revert it
2024-08-12 00:00:20 +08:00
Vovodroid
86cf6a55d3 Drop object on the plate (#6166)
Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-08-06 23:18:28 +08:00
Ocraftyone
dab6fa4db2 Fix Compile Warnings (#5963)
* Fix calls to depreciated wxPen constructor

* Fix use of wxTimerEvent

* Fix unrecognized character escape sequence

* Fix signed/unsigned mismatch

At least as much as possible without significantly altering parts of the application

* Clean unreferenced variables

* fix mistyped namespace selector

* Update deprecated calls

* Fix preprocessor statement

* Remove empty switch statements

* Change int vector used as bool to bool vector

* Remove empty control statements and related unused code

* Change multi character constant to string constant

* Fix discarded return value

json::parse was being called on the object, rather than statically like it should be. Also, the value was not being captured.

* Rename ICON_SIZE def used by MultiMachine

By having the definition in the header, it causes issues when other files define ICON_SIZE. By renaming it to MM_ICON_SIZE, this lessens the issue. It would probably be ideal to have the definitions in the respective .cpp that use them, but it would make it less convenient to update the values if needed in the future.

* Remove unused includes

* Fix linux/macOS compilation

* Hide unused-function errors on non-Windows systems

* Disable signed/unsigned comparison mismatch error

* Remove/Disable more unused variables

Still TODO: check double for loop in Print.cpp

* Remove unused variable that was missed

* Remove unused variables in libraries in the src folder

* Apply temporary fix for subobject linkage error

* Remove/Disable last set of unused variables reported by GCC

* remove redundant for loop

* fix misspelled ifdef check

* Update message on dialog

* Fix hard-coded platform specific modifier keys

* Remove duplicate for loop

* Disable -Wmisleading-indentation warning

* disable -Wswitch warning

* Remove unused local typedefs

* Fix -Wunused-value

* Fix pragma error on Windows from subobject linkage fix

* Fix -Waddress

* Fix null conversions (-Wconversion-null)

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-07-29 21:00:26 +08:00
ElectricalBoy
e5b455fac6 Fix typos (#5998)
* Fix typos

* Update translation files appropriately

* Fix more 'fond's with 'found's

* Fix typos

* Fix duplicate message error
2024-07-11 00:04:47 +08:00