Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support 3MF triangle paint_color attribute? (for multimaterial 3D printing slicers compatibility) #5629

Open
ochafik opened this issue Jun 19, 2024 · 0 comments
Labels
Feature-Request Global flag to mark feature requests

Comments

@ochafik
Copy link

ochafik commented Jun 19, 2024

Is your feature request related to a problem? Please describe.

Hi! I'm trying to integrate assimp to OpenSCAD, a CAD tool with a large 3D-printing hobbyist user base, to benefit from its large set of color-aware 3D file formats (see openscad/openscad#5180 (comment) ).

A core motivation is to be able to write models that can be printed by multimaterial printers (e.g. Prusa + MMU or BambuLab + AMS). The two main slicers in that space (PrusaSlicer and its fork BambuStudio) use 3MF with custom attributes.

In particular, when it comes to writing which material to "paint" a triangle with, they use a rather convoluted serialization scheme and the attribute paint_color or slic3rpe:mmu_segmentation (more details here) to describe how the face is painted.

Describe the solution you'd like

So, it would be amazing if assimp were able to write a .3mf that can be recognized as native by PrusaSlicer & BambuStudio.

Not sure how that fits into the assimp ethos, but if it's too specific a use case, I was wondering if you'd consider at leaast allowing custom key-value attributes for faces (and maybe custom metadata), so we can generate a model slicers will accept / read face painting info from.

It may be overkill to support the serialization scheme, but at least allowing passing along the serialized values would be great.

image

Describe alternatives you've considered

Alternatively I might just write to a blob, read the zip and surgically edit the model XML to add the attributes, leaving some matIdx breadcrumbs to know what to edit.

Orrr fork assimp and alter D3MFExporter::writeFaces somehow.

Thanks for the amazing work on assimp & for reading this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature-Request Global flag to mark feature requests
Projects
None yet
Development

No branches or pull requests

1 participant