bambulab / BambuStudio

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

Bambu Studio generated 3MF files cannot be opened with other slicers #3316

Open mcmaven opened 10 months ago

mcmaven commented 10 months ago

Bambu Studio Version

1.8.2.56

Where is the application from?

Bambu Lab Official website

OS version

Windows 11

Additional system information

No response

Printer

Bambu Lab P1P

How to reproduce

  1. Use PrusaSlicer to open a Bambu Studio generated 3MF file.
  2. Use Cura to open a Bambu Studio generated 3MF file.

Actual results

  1. PrusaSlicer generates an error message "Prusa Slicer has encountered an error. Error (Invalid 3MF format) while parsing '3D/3dmodel.model' at line 18".
  2. Cura generates an error message "No models in file".

Expected results

I expected the Bambu Studio generated 3MF file to be opened by the other slicers. This is an extremely simple file with only one part and no options set. I used the same part file (18650 Battery 4-3 D-Cell Spacer.STL) to generate 3MF files using Cura and PrusaSlicer and Bambu Studio was able to successfully open both files. If the Project ("Print Profile") files generated by Bambu Slicer are not compliant with the 3MF file format specification (https://github.com/3MFConsortium/spec_core/releases/download/1.3.0/3MF_Core_Specification_v1.3.0.pdf), then it should not use the 3MF extension!

Project file & Debug log uploads

The Bambu Studio .3MF file - 18650 Battery 4-3 D-Cell Spacer Test.zip

There is no Bambu Studio .log file for this project.

The STL file - 18650 Battery 4-3 D-Cell Spacer.STL.zip

PrusaSlicer and Cura 3MF files - 18650 Battery 4-3 D-Cell Spacer Test Cura and PrusaSlicer 3MF files.zip

Checklist of files to include

DanBao-Bambu commented 10 months ago

The current default "Save Project" and "Save Project as" operations in Bambu Studio produce 3MF files based on the 3MF Consortium's 3MF Production Extension specification.

If you wish to export 3MF files compliant with the 3MF Core Specification for opening in Cura and PrusaSlicer, you can achieve this by using the "Export Generic 3MF" operation. image

SaltWei commented 9 months ago

See wiki page. https://wiki.bambulab.com/en/software/bambu-studio/3mf-compatibility Not bug of BambuStudio.

mcmaven commented 9 months ago

Hi,

Thanks for the information.

FYI, I did a test where I opened the "Triple-axis Tourbillon Model for Kit 007.3MF" on page https://makerworld.com/en/models/13297#profileId-99236 in Bambu Studio 1.8.4.51, then exported the project as a 'generic' and a Bambu 3MF file. I think that this is a very complicated 3MF.

PrusaSlicer 2.7.1 could not open either exported file. Cura 5.6.0 opened the generic file but could only generate a partial slice of Plate 1. And it could not open the exported Bambu 3MF file. 3D Viewer could open both the generic and Bambu 3MF files. 3D Builder opened the generic file but could not open the exported Bambu 3MF file.

Regards,

Steve

On Sun, Jan 7, 2024 at 6:43 PM DanBao-Bambu @.***> wrote:

The current default save and save as operations in Bambu Studio produce 3MF files based on the 3MF Consortium's 3MF Production Extension https://github.com/3MFConsortium/spec_production/blob/1.1.2/3MF%20Production%20Extension.md specification.

If you wish to export 3MF files compliant with the 3MF Core Specification for opening in Cura and PrusaSlicer, you can achieve this by using the "Export Generic 3MF" operation. image.png (view on web) https://github.com/bambulab/BambuStudio/assets/132529350/1d18356d-0c97-499a-8423-6bfb8b7ccef1

— Reply to this email directly, view it on GitHub https://github.com/bambulab/BambuStudio/issues/3316#issuecomment-1880314679, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7YKQT5C4LUIE4QN746G3YNNMO5AVCNFSM6AAAAABBPEIC4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBQGMYTINRXHE . You are receiving this because you authored the thread.Message ID: @.***>

mcmaven commented 9 months ago

Hi DanBao,

Thank you for taking the time to analyze this. What program do you use to display the content of the 3MF file?

Regards,

Steve

On Sun, Jan 21, 2024 at 6:22 PM DanBao-Bambu @.***> wrote:

I have reviewed the 3mf file in the link you provided and also exported a universal 3mf file. I found that the loading error line is as follows. image.png (view on web) https://github.com/bambulab/BambuStudio/assets/132529350/780fd9c5-2afd-4de5-aa33-26ce9be7a2da Found the original model definition based on the object ID index and found that the model is "other". Perhaps this is the reason why it cannot be opened. image.png (view on web) https://github.com/bambulab/BambuStudio/assets/132529350/62732d18-ca61-4e36-8043-b2cf79e09664

— Reply to this email directly, view it on GitHub https://github.com/bambulab/BambuStudio/issues/3316#issuecomment-1902928186, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7YKRHNKFDP4LLD2ZJWJLYPXEMZAVCNFSM6AAAAABBPEIC4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBSHEZDQMJYGY . You are receiving this because you authored the thread.Message ID: @.***>

DanBao-Bambu commented 9 months ago

3mf files can be decompressed, and you can use decompression tools to decompress them. The 3mf model data is saved in the "/3D" folder, and "3dmodel. model" can be opened using text tools. It is used in the Generic 3mf file to save all model files, and in the Production Extension specification to save the index of sub files (these sub files are in the/3D/Objects folder). We will try to solve the problem you mentioned earlier, but it will take some time for research. Thank you for your question.

mcmaven commented 9 months ago

Yes. I simply changed the 3MF file extension to .ZIP, and I was able to see the tree of XML files in the 3MF file.

[image: image.png] And using XMLNotepad, I was able to examine the contents of the .xml, .rel. and .model sub-files. XMLNotepad only allows me to examine one XML file at a time. In the screenshots that you sent me was on line 280872. Only some of the .model files are large enough to have that many lines. And they are mostly mesh objects with 100's of vertices and triangles object definitions. I was trying to figure out which file(s) you were looking at when you generated the screen captures.

Was the program that you were using to view the file data and generate the screen captures treating the 3MF file as one giant file? In this case it would be easy to find a line number of 280872. This is why I was asking which program you were looking at when you generated the screen capture that you sent me.

Kindest regards,

Steve

On Sun, Jan 21, 2024 at 8:24 PM DanBao-Bambu @.***> wrote:

3mf files can be decompressed, and you can use decompression tools to decompress them. The model data of 3mf is saved in the "/3D" folder, and "3dmodel. model" can be opened using text tools. It is used to save all model files in the General 3mf file and to save the index of sub files in the Production Extension specification (these sub files are in the/3D/Objects folder). We will try to solve the problem you mentioned earlier, but it will take some time for research. Thank you for your question.

— Reply to this email directly, view it on GitHub https://github.com/bambulab/BambuStudio/issues/3316#issuecomment-1903215331, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7YKQ75H2WLYEWOGK24UDYPXSWNAVCNFSM6AAAAABBPEIC4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBTGIYTKMZTGE . You are receiving this because you authored the thread.Message ID: @.***>

DanBao-Bambu commented 9 months ago

When you export a generic 3mf file, all model information is in the "/3D/3dmodel. model" file, and you can open it like opening a ". txt" file. Then search for the keywords you need. If you want to view object information, search for "<object id=" ".

mcmaven commented 9 months ago

Thanks!

On Mon, Jan 22, 2024 at 12:37 AM DanBao-Bambu @.***> wrote:

When you export a generic 3mf file, all model information is in the "/3D/3dmodel. model" file, and you can open it like opening a ". txt" file. Then search for the keywords you need. If you want to view object information, search for "<object id=" ".

— Reply to this email directly, view it on GitHub https://github.com/bambulab/BambuStudio/issues/3316#issuecomment-1903495313, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7YKSVFSO37YEV7FT52PLYPYQN3AVCNFSM6AAAAABBPEIC4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBTGQ4TKMZRGM . You are receiving this because you authored the thread.Message ID: @.***>

dsanders2 commented 3 months ago

Other slicers can open other slicers .3mf files with no special actions needed. It would be best to use a different file format so not to confuse a Bambu Studio .3mf and all other "generic" .3mfs. I get that it still follows standards for .3mf formatting. However, if it is exclusive to just Bambu Studio it should have it's own file extension. This type of exclusivities only hurts the community. If this is not a bug it was a lousy design choice.

SaltWei commented 3 months ago

This type of exclusivities only hurts the community.

https://wiki.bambulab.com/en/software/bambu-studio/3mf-compatibility image We have submitted the code to Prusa and Cura to support the 3MF extension protocol. Prusa has already accepted our submission. We will keep trying to merge the code into cura.

Bambu does not have exclusivity. We are always open to communication.

Changing the 3mf file to something else will cause the Windows 3MF viewer to be unable to open Bambu's 3MF files, which seems even more exclusive.

mcmaven commented 3 months ago

I save Bambu 3MF files with a '.bambu.3mf' extension to identify them.

On Thu, Jul 18, 2024 at 11:10 PM SaltWei @.***> wrote:

This type of exclusivities only hurts the community.

[image: image] https://private-user-images.githubusercontent.com/110660407/350260589-c19c47b5-7e77-41e9-81b9-af5462247c9e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEzNjk1ODQsIm5iZiI6MTcyMTM2OTI4NCwicGF0aCI6Ii8xMTA2NjA0MDcvMzUwMjYwNTg5LWMxOWM0N2I1LTdlNzctNDFlOS04MWI5LWFmNTQ2MjI0N2M5ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcxOVQwNjA4MDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OWYyZjNhYTEzNGY3Yzk5OWJlYmQ2YWI2ZTllNWY3ZGViOWQ2MGE2YzY3NzZiYTE0ZmY5NDk0ZGFkYTQ3NDlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.wlQDrdaNFi8-xFXNe3w2iOV_rN6y37Vs-F_563GuIS0 We have submitted the code to Prusa and Cura to support the 3MF extension protocol. Prusa has already accepted our submission.

Bambu does not have exclusivity.

— Reply to this email directly, view it on GitHub https://github.com/bambulab/BambuStudio/issues/3316#issuecomment-2238311914, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHU7YKWJGOWY6OC2IKOYINTZNCUVTAVCNFSM6AAAAABBPEIC4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZYGMYTCOJRGQ . You are receiving this because you authored the thread.Message ID: @.***>