Skip to content

[feature] Mesh Export #20

@ES-Alexander

Description

@ES-Alexander

It was raised in #18 that it could be desirable to export the generated mesh of the printed extrusion, potentially as an STL file or similar.

Conceptually that should mostly involve a small amount of data wrangling to create data in an appropriate format, but I think it's important to establish the context and desired features first, so we can determine which file format(s) are most valuable to support exporting as.

A few potential considerations as a starting point for discussion:

  • Some applications require closed meshes
    • This should be achievable using the capped option in tube_mesh.py
    • I'm unsure whether there could be issues if the mesh is self-intersecting
  • Generated extrusion paths can have multiple parts
    • This may not be supported by all file types and may be precluded by / incompatible with a closed mesh requirement
  • The data we generate is more extensive than just geometry, and it may be valuable to be able to save some/all of the extra information
    • Colours is a potentially big one here, along with things like travel movements, temperature/speed changes, and possibly things like tool type and/or orientation as use-cases expand
  • Different file types have varying degrees of data compression, and small files are likely desirable (especially for large models)

I think we should make a list of features we care about, then turn that into a comparison table for viable file type options, and use that to determine which file types make the most sense to implement. Here's a quick first pass:

File Type Colours? Normals? Lines? Multi-part? Physical Units? Animation? File Size? Expected
Implementation
Difficulty?
STL Non-standard Required No ? Non-standard No Ascii: big
Binary: small
Easy-ish
(need normals)
OBJ Yes
(external)
Optional Yes ? Non-standard No big-ish Easy-ish
PLY Optional Optional Optional Optional Non-standard No Ascii: big
Binary: small-ish
?
AMF Optional Implicit No Yes ? No XML: big
zipped: small
?
3MF Optional ? ? Yes Yes ? XML: big-ish? ?
glTF Yes Optional ? Yes ? Yes ASCII/JSON: small-ish?
binary: small
Likely complicated

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions