Skip to content

Workflow enhancements for embedded labels#23

Open
w531t4 wants to merge 4 commits intondevenish:mainfrom
w531t4:streamline_3mf_prusaslicer
Open

Workflow enhancements for embedded labels#23
w531t4 wants to merge 4 commits intondevenish:mainfrom
w531t4:streamline_3mf_prusaslicer

Conversation

@w531t4
Copy link
Copy Markdown

@w531t4 w531t4 commented May 5, 2025

New Functionality

These enhancements make the workflow for printing labels (embedded text) much easier! If you're interested in using this in the interim, follow PrusaSlicer's instructions for building from source (https://github.com/prusa3d/PrusaSlicer/blob/master/doc/How%20to%20build%20-%20Linux%20et%20al.md) and use my branch from the PR.

Before the workflow looked like the following:

  • Create many stl with gflabel
  • Drag drop many labels into Prusaslicer
  • For each label, break into parts <-- many clicks
  • For each label, reorient to have text facing build plate <-- more clicks
  • For each object + parts, select appropriate extruder for label base, select appropriate extruder for text <-- Lots and lots of clicks
  • Print

Into the following:

  • Create many 3mf with gflabel, specifying text extruder, label-base extruder, and flip label text to face buildplate options
    • poetry run gflabel pred 123 --output blah45.3mf --style embedded --3mf-body-extruder=1 --3mf-text-extruder=2 --place-labeltext-on-plate
  • Open empty prusa slicer project
  • file -> import, select as many 3mf's as you want
  • check box for "apply to all objects being loaded" and press "YES"
    image
  • print

image
(screenshot taken from perspective of underneath the buildplate)

@w531t4
Copy link
Copy Markdown
Author

w531t4 commented May 10, 2025

  • 999202a:
    • Yields 3dmodel.model containing one object, and leverages Slic3r_PE_model.config to separate parts and color them.
    • Works with Prusaslicer today, no changes needed.
    • Bambou Studio doesn't import Slic3r_PE_model.config, and therefore isn't aware of any of the separate parts.
  • cd45b49:

@ndevenish
Copy link
Copy Markdown
Owner

This looks fantastic, it's something I had started looking into but I just couldn't work out the 3mf format, or how to get it to communicate any special settings/associations. Do you know if Orcaslicer has enough of PrusaSlicer DNA that it still works there?

Otherwise, I'll try to look over this and merge in soon.

For each object + parts, select appropriate extruder for label base, select appropriate extruder for text <-- Lots and lots of clicks

FWIW my normal flow is, select text colour, split to parts, ctrl-click all the bases and change only those. It's a lot faster (but still slower than this, obviously).

@ndevenish ndevenish self-assigned this May 11, 2025
@w531t4
Copy link
Copy Markdown
Author

w531t4 commented May 12, 2025

This looks fantastic, it's something I had started looking into but I just couldn't work out the 3mf format, or how to get it to communicate any special settings/associations. Do you know if Orcaslicer has enough of PrusaSlicer DNA that it still works there?

I tested Orcaslicer today, it fails like Bambou Studio does. Both share a similar approach, but that approach is significantly different from prusaslicer. I'll see what i can do to get orca to work, but it's going to be a lift.

@wjcarpenter
Copy link
Copy Markdown
Contributor

For a different approach using color attributes, see PR #32. It makes for a relatively simple workflow with Bambu Studio. For Prusa Slicer (which I don't use much any more), it doesn't seem to grok the different colors in either the STEP file or the converted-to-3MF 3MF file. It just shows the entire thing in a single color. If someone has info about how to overcome that for Prusa Slicer or others in that family of slicers, I'd consider doing more work on the color stuff to smooth the workflow.

@w531t4
Copy link
Copy Markdown
Author

w531t4 commented Apr 3, 2026

@ndevenish from your point of view - what further alterations would make this MR ready to go?

@w531t4 w531t4 force-pushed the streamline_3mf_prusaslicer branch from 999202a to e9f194c Compare April 4, 2026 15:12
@ndevenish
Copy link
Copy Markdown
Owner

I admit I had somewhat gotten this confused with #39, which also adds some 3mf export, and was laboring under getting that through. That and, most of the time I've been able to play with gflabel recently I spent building https://gflabel.org/ as an experiment trying out LLM for translating whole projects.

This PR does seems different, and complementary though.

A few points/questions:

  • Is it expected that this only works on Prusaslicer? Orcaslicer (or Bambu Studio) can't seem to see the separate objects or the separate colours (it says "This was made with an old orcaslicer"). From my brief research the 3mf standard looks horrible, do you have any idea how difficult it would be to make this more universal? Without a universal way, maybe there needs to be a --3mf-slicer=prusaslicer that is mandatory if you are exporting 3mf, to make the limitation obvious (and if it's hard/outsde your wheelhouse then I'm OK with this being the only option for now)
  • This doesn't use lib3mf directly, writing the XML itself. It seems likely with the other PR that pulling in lib3mf is the sensible thing to do; do you think it would be a lot of work to move to that directly?
  • Probably the 3mf code is special enough that it should be moved to it's own module (three_mf.py like on the other PR seems like a logical place + name).
  • Is there any reason not to set as default e.g. --3mf-body-extruder=1 --3mf-text-extruder=2? - and, likewise, I wouldn't be against having "face down" being the default for 3mf export when set to embedded (it might even make sense to default that way everywhere - that is certainly how I always print embedded).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants