bambulab / BambuStudio

PC Software for BambuLab and other 3D printers
GNU Affero General Public License v3.0
1.97k stars 271 forks source link

Multipart Multi-Color slicing - colors cross boundaries #733

Open asoderberg opened 1 year ago

asoderberg commented 1 year ago

Describe the bug When loading multiple part STLs and answering Yes to the "Load these files as a single object with multiple parts?" dialog prompt and then subsequently coloring the parts, when sliced they are not treated individually which results in colors crossing into several of the component STLs.

3mf File for This Bug Multipart fish.3mf can be downloaded via this DropBox link (3MF file too large to attach to this bug report): https://www.dropbox.com/s/spxuetvkcs0ru3o/Multipart%20fish.3mf?dl=0

To Reproduce Steps to reproduce the behavior:

  1. Be sure to have multiple filaments loaded in the project.
  2. Add multiple STLs that are part of one model. (example used is the Nemo Marlin)
  3. Click Yes to the "Load these files as a single object with multiple parts?"
  4. Select the color painting tool.
  5. Select the Fill tool, with Edge detection checked. Color each STL segment of the model with a different color.
  6. Click the color painting tool to return to the Prepare view.
  7. In the Others control view, Flush into objects' infill is to be un-checked.
  8. Slice the model.
  9. See how the colors 'bleed' across separate STL sections.

Expected behavior PrusaSlicer 2.5 does this correctly. With a multi-part model (loaded as a single object with multiple parts), when filling colors for each part, the colors are restricted to the part assigned when sliced. There should be no colors mixing across the component STLs.

Screenshots There are several screen shots attached that show what occurs in BambuStudio compared to PrusaSlicer. MultiSTL-multicolor slicing bug.zip

Desktop (please complete the following information):

zhimin-zeng-bambulab commented 1 year ago

Thank you for this case, and we will fix it in the future, but it will take some time.

The reason why Prusa does not have this problem is that Prusa does not read the coloring information when reading the file. And when loading multiple objects as one object, Prusa randomly gives each sub-component a color. It just so happens that the color of each part of this model is different, so Prusa is correct in this case.

You can also avoid this problem by clearing the original paint information and setting each sub-component to a different filament.