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

Direct Export to Slicers #2617

Open
Tracked by #3230
Sorcier opened this issue Sep 4, 2024 · 8 comments
Open
Tracked by #3230

Direct Export to Slicers #2617

Sorcier opened this issue Sep 4, 2024 · 8 comments
Labels
feature User-facing features and product enhancements

Comments

@Sorcier
Copy link

Sorcier commented Sep 4, 2024

Currently, there's no direct way to export models from the library to popular slicers like PrusaSlicer or BambuLab Slicer. This requires downloading the model and then manually importing it into the slicer software, which can be a cumbersome extra step.

I would like to see the addition of a functionality that allows users to directly export models from the 3D library to compatible slicers like PrusaSlicer and BambuLab Slicer. Ideally, this could be achieved through integration with their respective APIs or by offering dedicated export buttons that launch the desired slicer with the model pre-loaded.

The current alternative is to download the model and then import it manually into the slicer software. This is not a major issue but adds an unnecessary step to the workflow.

This feature would streamline the workflow for users who want to quickly move from browsing models to slicing them for printing. Direct export to popular slicers would improve user experience and make Manyfold a more attractive platform for 3D printing enthusiasts.

@Sorcier Sorcier added the feature User-facing features and product enhancements label Sep 4, 2024
@Floppy
Copy link
Collaborator

Floppy commented Sep 4, 2024

Yes, definitely. I'd love to work out how to do this. I suspect in general it's pretty hard unless the slicers register a special URL handler or something - otherwise it's up to the OS what happens to downloaded files by default. I did wonder if it would need to be a plugin for the slicers to be able to pull models from Manyfold, rather than the other way around. But all that aside, yes, I'd love to get that process smoother.

@TK-3375
Copy link

TK-3375 commented Nov 16, 2024

Not sure for bambu (makerworld.com has links that open straight in bambustudio) but at least prusaslicer asked me to associate the files so that calls could be made to the slicer on my machine. So it's client dependant I reckon. See printables screenshot below :

image

@Floppy
Copy link
Collaborator

Floppy commented Nov 16, 2024

Interesting, I hadn't seen the "built-in downloader" thing. I'll take a closer look at what PrusaSlicer and Printables does - maybe there's a custom URL handler. But yeah, in general, it's up to the client browser and OS to decide what to do with a download.

@Floppy
Copy link
Collaborator

Floppy commented Nov 25, 2024

Just noticed that orcaslicer has code in it that has shown me the required URL structure:

orcaslicer://open?file= then the encoded URL to download.

bambustudio, prusaslicer, and cura are done the same way: https://github.com/SoftFever/OrcaSlicer/blob/ca35ba41070aa180bb19a0ba9c4bf74639b50845/src/libslic3r/Utils.hpp#L220

I wonder if the same is true for Lychee, Chitubox, etc etc

@slitzer
Copy link

slitzer commented Dec 16, 2024

I love this Idea, i know it would just need a dir to export the files to and for the likes of OctoPrint it has a setting to auto scan a folder

@matthewbadeau
Copy link
Collaborator

Only Orca Slicer and Cura support opening via arbitrary URLs. Both PrusaSlicer and Bambu Studio refuse to open up to domains other than Printables and Makerworld for security reasons. I disagree with this but we cannot change it, so we'll need to try other solutions.

I think if this project gets large enough and enough people are using it, there will be a stronger case to adding that functionality to those two slicers. Plus, if someone can contribute a feature to the slicers to add certain trusted URLs as a configuration setting, I think that would make them happy. Their priorities aren't to work on that feature and I understand. So this needs to be a community contribution.

I spent a little time hacking something together today. Here's a little screenshot.

Download button for various slicers

There are a few problems right now that need to be overcome.

With the current authentication method, even in single user mode, it's not possible to download a file unauthenticated. The slicer needs unauthenticated access to the URL. In the case of Orca Slicer, it's doing a direct download. I even tried a base64 dataURI and that doesn't work. It needs a URL to parse.

A solution could be a short-lived, unauthenticated URL that only accepts certain user-agent strings. Orca Slicer's user agent is OrcaSlicer/{VERSION} (ex: OrcaSlicer/2.2.0). Cura's is cura/{VERSION} ({ARCH}) (ex: cura/5.9.0 (Darwin arm64)). The process could be the following:

  • User clicks on "Open in Slicer".
  • A modal pops up that starts generating a link.
  • It has an automatic browser redirect to the URL. The user may or may not get prompted to open up the slicer

For now, I'll stop working on this feature until there are a few more base things added that can assist with this. A short lived URL is also valuable for sharing links between servers. Such as someone wanting to purchase a model from another user. The short lived URL can be used to transfer the model files between the servers.

@Floppy
Copy link
Collaborator

Floppy commented Jan 18, 2025

Thanks! That's really useful investigation, much appreciated!

@Floppy
Copy link
Collaborator

Floppy commented Jan 20, 2025

Hilariously, from the code, it looks like if you include "amazonaws.com" as a meaningless anchor or query argument in your URL, Bambu would go ahead and open it.

Yay, SECURITY!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature User-facing features and product enhancements
Projects
Development

No branches or pull requests

5 participants