Commit Graph

173 Commits

Author SHA1 Message Date
weizhen.xie
9f7ff97be6 ENH: add initial layer time to plate_x.json and slice_info.config
Jira: STUDIO-14504
Change-Id: I32460f1c19cce7c729806e35370e8b4b57aa069e
(cherry picked from commit 04a487d210134c28245c1f0f7d0986266a1c66f2)
2025-10-28 15:30:05 +08:00
chunmao.guo
0dfe185cad FIX: XML_SetEntityDeclHandler
Change-Id: I8d125ac31f68730ed79d95a912a14837d7433ee8
Jira: BUGMGT-481
(cherry picked from commit 1541ee0af68cecccea9bab6fae734aaa1087f2f1)
2025-10-28 15:30:00 +08:00
zhou.xu
d8cd5d4ceb FIX:load not bbs 3mf which can load in https://imagetostl.com/view-3mf-online#convert
jira: STUDIO-12000
Change-Id: I80ddc4988807d67e9549c75ccc94744889b9e2ac
(cherry picked from commit a742ed722271909ece4a6d7827f311e9fe104488)
(cherry picked from commit 6e095141b66309983d4df8c8fce12d779e25d262)
2025-10-28 15:29:50 +08:00
Noisyfox
8e0e8ce461 Merge remote-tracking branch 'remote/main' into dev/h2d-2
# Conflicts:
#	src/libslic3r/PrintConfig.cpp
#	src/slic3r/GUI/ConfigManipulation.cpp
2025-10-19 23:11:13 +08:00
Donovan Baarda
2a3e761ab9 Optimize and simplify MarchingSquares.hpp. (#10747)
* Optimize and simplify MarchingSquares.hpp, and fix it's test.

This changes the implementation to get the possible next directions for a cell
when building the tags and clearing them as the cells are visited during the
march, instead of adding the visited previous direction to the tags during the
march. The Dir enum has been turned into bit flags that for the possible next
directions with boolean operators for testing/setting/clearing them. This
simplifies and optimizes many operations during the march and building the
polygons.

The complicated/broken and unused partial support for cell overlap has been
removed, simplifying the overly confusing grid iteration logic.

The broken test has been fixed by removing the now gone `RasterBase` namespace
from `sla::RasterBase::Pixeldim` and `sla:RasterBase:Resolution`, and the
CMakeLists.txt entry uncommented.

make Dir into flags

* Further optimize MarchingSquares.hpp and improve comments.

* Switch from a single byte-vector containing tags and dirs for each cell to a
  m_tags vector of bit-packed tags for each grid corner and an m_dirs vector
  of packed 4bit dirs for each cell. Since each grid corner tag is shared by
  the 4 adjacent cells this significantly reduces storage space and avoids
  redundantly calculating each tag 4x. It also significantly improves memory
  locality with each phase of calculating tags, calculating dirs, calculating
  rings operating only on the tags or dirs data required without them being
  interleaved with the data they don't need.

* Change NEXT_CCW to be initialized with a static constexpr lambda instead of
  a manually entered table. This avoids typo errors manually building the
  table.

* Optimize search_start_cell() so it can efficiently skip over cleared blocks
  of 8 dirs in the packed m_dirs vector.

* Change the tags logical labeling to better suit the packed tags vector data.
  This makes it a tiny bit more efficient to extract from the m_tags bitmap.

* Remove the now unused SquareTag enum class.

* Add comments explaining the algorithm, including corner-cases in cell
  iteration.

* Remove unused Dir operators and get_dirs() argument, and clang-format.

* Fix some bugs and add stream output operators for debugging.

* Fix a bug building tags where `step(gcrd, Dir::right)` was not assigned to
  update the gcrd grid point. Perhaps this should be a mutating method, or
  even a += operator? Also when wrapping at the end of a row it was updating
  the gcrd grid point by mutating the p raster point instead of itself.
  Perhaps Grid and Raster points should be different types? Maybe even
  templated?

* Fix a bug in get_tags() when the second row tags are packed into any of the
  2 LSB's of the uint32_t blocks. In hind-sight obviously `>>(o - 2)` will not
  shift left when `o < 2`.

* Move interpolation of the edge-crossings into a `interpolate()` method, and
  make it shift bottom and right side points "out" by one to account for
  raster pixel width. This makes the results track the raster shapes much more
  accurately for very small windows.

* Make `interpolate_rings()` check for and remove duplicated points. It turns
  out it's pretty common that two edge-crossing-points at a corner interpolate
  to the same point. This can also happen for the first and last points.

* For Coord add `==` and `!=` operators, and use them wherever Coord's are
  compared.

* Add `<<` stream output operators for Coord, Ring, and Dir classes. Add
  `streamtags(<stream>)` and `streamdirs(<stream>)` methods for dumping the
  tags and dirs data in an easy to understand text format. These make
  print-debugging much easier.

* Add `assert(idx < m_gridlen)` in a bunch of places where grid-indexes are
  used.

* For test_clipper_utils.cpp fix three "ambiguous overloading" compiler errors.

This just adds three `Polygons` qualifications to fix compiler errors about
ambiguous overloaded methods.

Note this file was formated with a mixture of tabs and spaces and had lots of
trailing whitespace. My editor cleaned these up resulting in a large looking
diff, but if you use `git diff -w` to ignore the whitespace changes you will
see it is actually tiny.

errros

* Update SLA/RasterToPolygons.* for MarchingSquares.hpp improvements.

Change the minimum and default window size from 2x2 to 1x1. Also remove the
strange pixel size re-scaling by (resolution/resolution-1).

The old MarchingSquares implementation had complications around a default
minimum 1 pixel "overlap" between cells which messed with the scaling a tiny
bit and meant when you requested a 2x2 window size it actually used a 1x1
window. Both of these meant you had to specify a window 1 pixel larger than
you really wanted, and you needed to undo the strange scaling artifact for
accurate dimensions of your results.

This has been fixed/removed in the new implementation, so the window is the
window, there is no overlap, and no strange miss-scaling.

* Fix test_marchingsquares.cpp and add StreamUtils.hpp.

This fixes the MarchingSquares unittests to both pass and be more strict than
they were before.

It also adds libslic3r/StreamUtils.hpp which includes some handy streaming
operators for standard libslic3r classes used to show extracted polys in the
unittests.

* Change Format/SL1.cpp to support the min 1x1 window for MarchingSquares.

* Fix the ring-walk termination condition.

Terminate the ring-walk when we return to the starting cell instead of when we
reach a cell with no remaining directions. This ensures we don't merge two
polygons if we started on an ambiguous cell.

* Revert the removal of duplicate points in interpolate_rings().

It turns out that duplicate points are only relatively common when using a 1x1
window. These happen when the line passes through the corner pixel on a
top-left corner in the raster, and the probability of this rapidly declines as
the window increases, so in many cases this filtering is just overhead. It can
also be potentially useful to see the points for every edge crossing even if
they are duplicates. This kind of filtering is already done and done better in
the polygon post-processing.

* rename `interpolate()` to `interpolate_edge()`, make it update the point
  in-place, and add asserts to ensure the input point is a valid edge
  interpolation point.
* Remove the duplicate point filtering from `interpolate_rings()` and simplify
  it.

* Optimize directions building.

This optimizes `get_dirs_block8()` to rapidly skip over blocks where the tags
produce no directions (all tags are 1's or 0's), and also to build the
directions faster when it has to by fetching the whole blocks worth of tags at
once instead of cell-by-cell.

* Rename `get_tags()` to `get_tags9()` and make it fetch a row of nine tags
  instead of the tags for a single cell.

* Optimize `get_dirs_block8()` to use `get_tags9()` to get the next nine tags
  for the current and next rows and then shift through them to generate the
  tags and directions for each cell in the block. Also abort early and just
  return an empty block if the tags are all 0's or all 1's.

* Tiny optimization for `get_tags_block32()`.

This avoids using the `step()` method for a simple step-right that can be done
with a simple increment of the column. It also avoids re-calculating the
raster-coodinates for every corner, instead incrementing the column by
`m_window.c` until the end of a row.

* Fix svg output in test_marchingsquares.cpp for recreate_object_from_rasters.

These SVG's were not properly centered...

* Fix 2 static_casts for compiling on Windows.

Thanks to RF47 for pointing this out on the #10747 pull request.

* Make edge iteration use O(ln(N)) binary search instead of linear.

This should be much faster when the window size is large.

* Make `CellIt` into a `std::random_access_iterator_tag` so that
`std::lower_bound()` can use a binary search to find the point on the edge
instead of a linear search.

* Change `step()` to support an optional distance argument and make it modify
the `Coord` in-place instead of return a new one.

* Update tests for the `step()` change.

* Add Catch2 BENCHMARK tests for MarchingSquares.

This required enabling the benchmarks in the tests/CMakeLists.txt config.

* Add a _Loop<> specialization for parallel execution using ExecutionTBB.

This is something that could be added wherever you are going to use this, but
I intend on using this in multiple places so we might as add this once in one
place where it can be reused.

* Fix whitespace in messed up by tab-replacements.

My editor renders, and replaces, tabs as 8 spaces. This messed up the
indenting in tests/libslic3r/CMakeLists.txt and
tests/libslic3r/test_clipper_utils.cpp when I made tiny changes in them.
This fixes the indenting using 4 chars. Note it will still show as a diff
because it is replacing tabs with 4 spaces, and removing trailing whitespace.

But at least it's now indented correctly...

---------

Co-authored-by: Donovan Baarda <dbaarda@google.com>
Co-authored-by: SoftFever <softfeverever@gmail.com>
2025-10-19 19:27:55 +08:00
Noisyfox
56d8bd8fbe Fix option nullable 2025-10-10 16:57:16 +08:00
chunmao.guo
3d7bf13932 FIX: _add_auxiliary_dir_to_archive crash on empty path
Change-Id: I940fab66ce9512225968510c1f1dc8868c6790ad
Jira: STUDIO-14005
(cherry picked from commit 5f6b4b58a5bda65369b95fa7dc5ed7ad793040e8)
2025-10-05 00:04:18 +08:00
zhou.xu
94732b6bad ENH: 3mf: fix save fullpath issue
jira: STUDIO-12970
Change-Id: I71bbd9fd3e1bae669fcc29822f75a3ab9025af56
(cherry picked from commit da0f893433049899227a71e5ddc79833431ce39a)
2025-09-28 13:12:11 +08:00
lane.wei
18b9bffd02 ENH: 3mf: fix save fullpath issue
jira: no-jira
Change-Id: I3077cceae2dfadc2882b4eb1de2234c5c445f342
(cherry picked from commit 5776d8e3fc4f8578b9ed397bd0afe0f9668cd634)
2025-09-28 11:38:31 +08:00
noisyfox
eb75a325ca Fix build error when PCH is not used 2025-09-21 13:48:07 +08:00
zhimin.zeng
9744d93406 FIX: Add protection to prevent inf use_m
jira: none
Change-Id: I37b4a032c0504200b4b97c3d63744ea7e5962b66
(cherry picked from commit 94b6e7b78b34e2f225ef7361d3a9251d05da6de2)
2025-09-21 13:48:04 +08:00
Mack
5004fbbf60 ENH:loading the step in boost thread
github: #6079
Change-Id: I0a289fc9730e7d091a71137cf11a711dfee5392f
(cherry picked from commit b454e7d8bb91b62b3be6121c567f7aee291eff50)
(cherry picked from commit b7ffba39e407317ad3cc4fe65d220f0049963aa9)
2025-09-21 13:47:52 +08:00
lane.wei
833108d29a FIX: 3mf: fix a popup issue while parsing old 3mf
jira: no-jira
Change-Id: I89f0b83f146bea60ef821160254cee4d2c0eb0ca
(cherry picked from commit 5f1714f02ceeb34519e0ec401d37be3ff7efa87b)
2025-09-21 13:47:50 +08:00
zhou.xu
e7e8fab7a0 ENH:is_bbl_3mf pointer should determine if it is empty
jira: STUDIO-11031
Change-Id: I14c6daeb275a82d019f88246b23013163a14ded1
(cherry picked from commit aa7fbd4926254be62ccee40b0a7d23b90a109675)
2025-09-18 16:43:09 +08:00
zhimin.zeng
9cdabfbd59 FIX: Remove unprintable_filament_map
jira: none
Change-Id: I30285d0cc98a974e71f16fd9adb57dfcccb39415
(cherry picked from commit 1959fa7d5c213a7720b8f215f1578597278e6920)
2025-09-18 14:13:51 +08:00
xun.zhang
efdcf91d96 ENH: fix unable to load video
1. also  add protect for filament map read

jira:NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I321be9f49d7696d02ed7771852713c0cef5d5ebd
(cherry picked from commit 8b735631b1b068b87c46c32243d183e9aec41b60)
2025-09-17 10:21:16 +08:00
zhimin.zeng
00f19fcd72 ENH: add timelapse warning for multi-extruder printer
jira: none
Change-Id: I09a25f00eef6d3fab6ad948a13c8eb308f134dbb
(cherry picked from commit d7acee50e88812e8a0bd7b9afea7aca5d5826841)
2025-09-10 15:01:19 +08:00
zhou.xu
3e9a8b8b3a FIX:add error deal:mtl file lost some material
jira: github 5687
Change-Id: I2394d27b027cfe34ac3cb260735aceaee65ff6d9
(cherry picked from commit 58f9c7d0b2800c4b8b67991f5d3e43d57a6cd1eb)
2025-09-09 10:14:19 +08:00
zhou.xu
926c22b797 NEW:add "obj preview thumnailData" function
jira: none

Change-Id: I688c2f05bf85fca376418115acddb5066ef980eb
(cherry picked from commit 16f2b2bcb5fd157f25aa7012dabd99a8d31aec07)
(cherry picked from commit 7cc21b5e9745a84d75ea13b66f5653520bb1cba3)
2025-09-09 09:39:43 +08:00
zhimin.zeng
a3c740c228 FIX: the nozzle diameter and filament map of slice_info is empty
when start manual cali
jira: none
Change-Id: I34d580e2527b587e395da9914f6cd1b4a54646e6

(cherry picked from commit 49b9bc84614d16e38adcde82d7148008a0357062)
2025-09-07 00:00:37 +08:00
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
71f9126b77 FIX: fix crash when loading 3mf file
jira: none
Change-Id: Ice2a518518994871d23a6f478145edd36f0343a2
(cherry picked from commit b495bfd4e9dbdc11bc4e5e4146abfd0bdca137bc)
2025-08-24 23:18:28 +08:00
zhimin.zeng
f20c916e05 ENH:add layer_filament_list.json record used filaments for each layer
jira: none
Change-Id: Ib293ff9fdd284fef9e6de93260e2ba7cc3d66daa
(cherry picked from commit 28046fbc23e174868f41535764076888a680d116)
2025-08-24 23:18:25 +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
zhimin.zeng
444d7fa81a ENH: Add limited filament maps to slice info
jira: none
Change-Id: I7b08943ba5f4e7fa9be18ba3f64caee182888d45
(cherry picked from commit 85ebb469959499d5c2d7fe349e0d8e92045c9fab)
2025-08-24 23:18:16 +08:00
zhimin.zeng
0135b251cd FIX: save filament_maps to slice_info
and fix bug when switching printer preset between single-nozzle and double-nozzle, prompt the modification of extruder_count
jira:none

Change-Id: I1d5f0b2f002493378d2f482d08cfd5a72b35b99f
(cherry picked from commit ed9816397374116db37c2a76d11e0216df5aca1d)
2025-08-24 23:18:06 +08:00
lane.wei
141af16fa2 ENH: config: add filament_maps in partplate
Change-Id: I1183830788e703f1d33a8a4b620b58b822283dd4
(cherry picked from commit b0e3ab037e3f5af0851539af5ac15b8f96daf548)
2025-08-24 23:18:01 +08:00
Noisyfox
e44ec1f27b Update 3mf key for fuzzy skin painting to match BBS (#10169) 2025-07-18 16:09:34 +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
d0bf8746d0 Merge branch 'main' into dev/bbl-network-upd 2025-06-14 09:52:33 +08:00
Noisyfox
b2ed8ff53e Remove sensitive data in 3mf files (#9825)
* Do not store BBL user id in 3mf file

* Do not store creation & modification date in 3mf file
2025-06-08 17:55:15 +08:00
Noisyfox
12d5ffb8e5 Store dummy filament map data in bbl 3mf 2025-05-01 15:54:18 +08:00
yongfang.bian
08eeed9c72 Fix:step mesh using boost thread
github: #5304
Change-Id: I4afc5978b00eed20c46a1bf4100c9a0f0328daf8
(cherry picked from commit 151f40ad4dbf871576937f9674ac532c32df27d0)
2025-03-27 22:35:00 +08:00
Mack
588f42e2e2 NEW:step mesh add 'Split compound and compsolid'
Optimize getting STEP node names.
Fix load_same_type_files()

GITHUB: #5214
Change-Id: I7d1035c122f21e3b08305509489bce415634ae80
(cherry picked from commit 76a401bfca1897994795cb37ffa9cbcbdaca8b6c)
(cherry picked from commit a0669137ec7e698320d0bc50ee986cb3f0e85164)
2025-03-27 22:25:29 +08:00
Mack
f91b520bb8 ENH: step mesh operation adjustment
1.Put commctrl.h into pch precompilation(OCCT conflicts)

2.Replace input wxWidgets to support loss focus verification(STUDIO-8101)

3.Optimize slider interaction and trigger mesh when push up slider(STUDIO-8099)

4.Optimize step loading method, separate import of step and mesh

5.Fix dialog cancel button logic;

6.mesh tasks into sub-threads to prevent blocking the UI;

JIRA: STUDIO-8101 STUDIO-8099
Change-Id: I50bbb43953a5128f358c6880032d20693531333b
(cherry picked from commit ed7ab6b505a2becf8f38edb3c43b96e51eac3317)
2025-03-27 21:56:09 +08:00
Mack
e1477e642c FIX:Replace non-UTF8 characters in STEP model names with IDs on import
jira: STUDIO-8055
Change-Id: I9255a7a871ebc9920ec683d1a2a80cd53ada0f10
(cherry picked from commit 89be3166e286346254a08c8efc188e0cea83f2a4)
2025-03-27 21:50:32 +08:00
Mack
61ebddf9b8 NEW:add step mesh parameters
jira: STUDIO-7415
Change-Id: I5e09a1eb1ad31063ad56d08d5738907a804dc112
(cherry picked from commit ccbe9630076b754ab440e98977c4164afff96250)
(cherry picked from commit 84e7063c54a99e8a1440e74f831c6d1f6828f3f8)
2025-03-27 21:27:25 +08:00
Noisyfox
f9814370bb ENH:brim ears are saved in 3MF
Cherry-picked from bambulab/BambuStudio@a45a2eec54

Co-authored-by: Mack <yongfang.bian@bambulab.com>
2025-02-17 17:12:52 +08:00
Noisyfox
16340fd6b6 FIX: step model split COMPOUND and COMPOUNSOLID type (#8084)
JIRA:STUDIO-5632

GITHUB: #3153
Change-Id: I1b9b49321cc0da8bdd79e2beb4009283cfada287
(cherry picked from commit 6191a66441549b1cee8be8d7f740c2d466557691)
(cherry picked from commit 90f325792dc4910b80d69c9d6a5677f24b8fa259)

Co-authored-by: Mack <yongfang.bian@bambulab.com>
2025-01-22 10:03:43 +08:00
Noisyfox
b38b9132f4 Fix 3mf object type to conform the 3mf core spec (#7586)
Fix 3mf object type. Always use "model" instead of "other" for modifiers, to conform the 3mf core spec (SoftFever/OrcaSlicer#7574)
2024-11-27 20:39:57 +08:00
Vovodroid
2eb1adb719 Reduce warnings: remove unused variables (#6499)
Removed unused variables
2024-08-23 00:02:58 +08:00
Noisyfox
f136f04cfd Fix Linux build & some warnings (#6438)
* Fix linux deps debug build

* Use the same DL_CACHE for release build when building debug version of deps on Linux.
This prevents downloading the same source packages twice, and avoid downloading again after deleting the build dir.

* Fix debug build

* Fix warnings "loop variable creates a copy from type" and "loop variable binds to a temporary constructed from type"
2024-08-18 11:33:00 +08:00
SoftFever
7082e945b1 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
Ocraftyone
b83e16dbdd 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
SoftFever
b7a0b30578 Pick updates from BS 1.9.3
sync bbl profiles
FIX: [#4320] crash when edit project preset

github: #4320

Change-Id: I81eb5f0d461565d63a32100a5bebb4569cfb0b1b
ENH: add pctg type

Jira: none

Signed-off-by: qing.zhang <qing.zhang@bambulab.com>
Change-Id: Ie01fcd4bef0d3ebec5bbd7185a87a1740068bdba
(cherry picked from commit c6276932dd92bc4283600954415eedeac6d351ce)
ENH: CLI: add logic to save metadata into 3mf from CLI

JIRA: no jira
Change-Id: I7f96c2ab9671ec1c0115e90f6d64230b8170eb38
(cherry picked from commit 3d2d6e23ba318a2b331a62e320f8ca199168f1f5)
2024-06-21 18:21:21 +08:00
SoftFever
27f140fb18 Mdel preview renders the actual colors of the filaments based on the filaments currently loaded in the AMS
Ported from BambuStudio
2024-06-16 17:15:51 +08:00
SoftFever
b3fff4ffd5 Removed the copyright and credits in the header of each file. This information is outdated and hard to update. Orca Slicer maintains the autoher info in git history so this is not necessary. 2024-06-15 14:56:44 +08:00
Ocraftyone
a764d836e1 ENH: Open Prinables.com Links and Zip Archives (#3823)
* Enable ability to open `prusaslicer://` links

* Add needed function to miniz

* Import Zip Functionality

Allows zip file to be drag and dropped or imported via the menu option

Based on prusa3d/PrusaSlicer@ce38e57 and current master branch files

* Update dialog style to match Orca

* Ensure link is from printables

* add toggle option in preferences

doesn't actually control anything yet

* Add Downloader classes

As-is from PS master

* Create Orca Styled Variant of Icons

* Add Icons to ImGui

* Use PS's Downloader impl for `prusaslicer://` links

* Implement URL Registering on Windows

* Implement prusaslicer:// link on macOS

* Remove unnecessary class name qualifier in Plater.hpp

* Add downloader desktop integration registration and undo

* Revert Info.plist

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-05-22 10:52:34 +08:00
SoftFever
ad341ec9e6 Feature/merge bs1.91 (#5394)
* fixed logic error in PLA jamming gcode for P1S

* Fix use after free bug in LinesBucketQueue::emplace_back_bucket
I found a use after free bug in LinesBucketQueue::emplace_back_bucket. This was found by enabling address sanitizer.
The LinesBucketQueue class has two related members:
std::vector<LinesBucket> line_buckets;
std::priority_queue<LinesBucket *, std::vector<LinesBucket *>, LinesBucketPtrComp> line_bucket_ptr_queue;
line_bucket_ptr_queue holds pointers into line_buckets. However, since items are inserted into line_buckets one at a time, existing pointers that were stored inside line_bucket_ptr_queue become invalid. Specifically:
void LinesBucketQueue::emplace_back_bucket(ExtrusionLayers &&els, const void *objPtr, Point offset)
{
    auto oldSize = line_buckets.capacity();
    line_buckets.emplace_back(std::move(els), objPtr, offset); <--- Causes a reallocation, making previous pointers invalid
    line_bucket_ptr_queue.push(&line_buckets.back()); <-- priority queue compares against old, now invalid pointers
    ...

The proposed fix is to calculate the required number of entries in ConflictChecker::find_inter_of_lines_in_diff_objs, and then calling line_buckets.reserve(count). This ensures that sufficient buffer is allocated up front and the pointers are stable as items are added.

* Updated to fix the handling of the capacity change, and removed the code I previously added to reserve upfront since it is not really needed

* Remove accidentally added whitespace

* Removed unused method

* ENH:add mz_zip_reader_extract_to_file_w api

to solove plugin install failed problem by special wide char
jira: none
Change-Id: Ic7d3efe3fdf852387650abf9df65803da9e46a60
(cherry picked from commit b68ad03717a63675fef2f3ef73d4058bf311adea)

* FIX: PrinterFileSystem report real connect error

Change-Id: I99d6ff7f6dcb1f53ccf59854f5f19d0bd39fa9fc
Jira: none

* rename preference name

* FIX:Relax restrictions on importing obj files

jira: none
Change-Id: I61a0156a8424a5f59922956918d37d38e2c3306a

* FIX: [6469] popup dialog too mach when reload object

Jira: 6469

Change-Id: I4097e3a3b018c7a676fea93bf63f8f778bb3148b

* FIX:fixed incorrect display of printer options page on Linux

jira:[STUDIO-6220]

Change-Id: Id1f084658b0b340b7f17ab97ba82c0fd3ae83fae

* FIX: handle exception of dividing by zero in arranging

jira: none
Change-Id: I0d20464dbe81a80293539100f06d72dee456a27b
(cherry picked from commit 94746ae9bf7f467243849570450567b4fdc78e3a)

* ENH:delete no use code

jira: none
Change-Id: I40e7ffa7ea47bb3cd4039eef9f6c28c604eb3abc

* FIX: PrinterFileSystem::FileRemoved

Change-Id: I891aaa8d58ff379dc1ebd8581064865a33388f74

* FIX: resend ttcode to printer on -90 error

Change-Id: I96dc45102a2759a9f1a0002f42c3a91b2c6b2d75
Jira: STUDIO-5947
(cherry picked from commit 97d687b7c88f8cd51b8eddd39120349d8eac42b1)

* FIX: fix some issue in multi machine

JIRA: STUDIO-6934 STUDIO-6888
1. Fix the issue of incomplete display caused by excessively long file names
2. Fix the issue of icon display being too large
3. Fix the issue of garbled Chinese characters in the task list

Change-Id: I36bc10bf2067f44aaa7e3651b58e526ea323c8ad

* FIX: Incorrect multiplier, when the multiplier is set to below 1

github: #3987 #3805
1. In some languages that use commas as decimal points, setting multiplier below 1 will resolve to 0
2. Unable to save multiplier correctly

Change-Id: I62bc55e270929ebb5e910eb79c6f97106e842b93

* Arrange

* FIX: wrong wipe tower when open 3mf file

1.wipe tower pos in 3mf was overwritten by default pos when opening 3mf
with a different printer profile.This patch fix it

jira: STUDIO-5890

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I12e5d4b80a0ad86194db0682c1763ba4a9492521

* ENH: update A1 machine gcode

1.Adjust the y position of the A1 extrusion compensation line

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Iea690a0184ae10a47f53e1532272c31fc0a04cfa

* FIX: minor spelling mistake in gcode

github:#3477

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Id3201bf8b8125ce060e2cac102ab2525877e27c1

* FIX: slice crash with height_range

github: 3917
Change-Id: Icdf83013213b47935b7a795ed75cc3d49057665d

* FIX: ERROR_RES_BUSY text

Change-Id: Ifde1a7b0c6ab915eb226c2072c46edd40f60cf9a
Jira: STUDIO-6436

* ENH:Unable to send printing without selecting a device

jira:[STUDIO-6850]

Change-Id: Ic537579727fd1618af364db93fce8fbbe4cd635a

* FIX:add exit_gizmo before slice model

jira: STUDIO-5531
Change-Id: Icddc9d73b3d91bb68e9768d13e48cbae0680e58e

* FIX: PrinterFileSystem report real connect error

Change-Id: Id6750cfa2a98fe8325ba677dabb606a0a701b495

* FIX: add can slice judgement in slice all plates processing

jira: STUDIO-6325

Change-Id: Ic7fb8cef000c03210bb77289a570ee6b60b6083e

* FIX:Fixed error in displaying the name of Bambu filaments

Change-Id: Ib42194c07b6eefe793eec81a588debc9d622d951

* FIX: text hidden in calibration tab

jira: STUDIO-6264

Change-Id: I24fbc590638a3213d948a973422e010486113923

* FIX: logic error in PLA fan control

github PR: #3948

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I28e4a673e590e83d151e92cc82caab45012aeabe

* FIX:upgrade cluster algorithm to remove duplicate labels

jira: none
Change-Id: I4d68d8cd8e080932c7c308bc8f69e27546ffe309

* FIX: can not parse json float in ES on macOS

jira: STUDIO-5889

Change-Id: I622f4b474c378d77b0e43d67a320f023be2d5811

* ENH:Clear the value of the previous nozzle type

jira:[for nozzle check]

Change-Id: I9a932b833fb07de6cb0a91abe6372b0e91f273f1

* ENH: update A1 gcode

1.Modify the width of extrusion compensation line

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I90543758c866d74f2154e3135d7569109def84b8

* FIX: the height range is not valid in assemble object

github: 3876
Change-Id: Id38672bbf0c01bc9b9f0a3e2bf1052d945b45131

* FIX: calibration page text hidden in linux

jira: STUDIO-6264

Change-Id: If210abf64057eb2e9c2c5b11d41fa33f18684c72

* ENH:clear nozzle information

jira:[STUDIO-7050]

Change-Id: I15ca4973d09132ddb5cb5a56bedd795ba6976b27

* update plugin version

---------

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: afriede <me@afriede.dev>
Co-authored-by: Momin Al-Ghosien <momin@sanestudios.com>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
Co-authored-by: maosheng.wei <maosheng.wei@bambulab.com>
Co-authored-by: tao wang <tao.wang@bambulab.com>
Co-authored-by: Arthur <arthur.tang@bambulab.com>
Co-authored-by: Kunlong Ma <kunlong.ma@bambulab.com>
Co-authored-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: liz.li <liz.li@bambulab.com>
2024-05-19 21:22:14 +08:00
SoftFever
9b2c2bff1d Support larger printer sizes by using 64-bit.
SuperSlicer is referenced for some changes.

Co-authored-by: Merill <merill@free.fr>
2024-05-10 23:47:08 +08:00