prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.5k stars 1.9k forks source link

Make STL repair work on Linux #9066

Open kozross opened 1 year ago

kozross commented 1 year ago

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

Currently, Linux installations of PrusaSlicer do not have access to the Netfabb-driven STL repair feature available on Windows. Its use is illustrated below for clarity:

image image2

For clarity, these are illustrations provided by a Prusa Research support staffer during diagnosis of a strange slicing result, which turned out to be a model error. I could not make use of this feature as a Linux user at all. Worse, I even attempted to run PrusaSlicer under Wine, and it still didn't work: clicking the orange warning triangle silently does nothing.

Setting aside that silent failure is definitely not desirable UI behaviour here, this effectively relegates Linux users (and I assume, Mac users) to second-class status vis a vis feature support. While I realize that PrusaSlicer is, above all, a slicer, the fact is that this feature already exists and is accessible to Windows users, and Windows users only. This runs directly counter to the claim by Prusa Research that PrusaSlicer supports Linux; to my reading, this implies feature parity.

Describe the solution you'd like

The following UI change, which I consider necessary in any case:

Additionally, one of the following:

Describe how it would work

The UI change would help considerably, especially for new users. Depending on what solution is used, the outcomes would be different:

Describe alternatives you've considered

Obviously, manually fixing this using Blender or similar software is possible, but compared to what a Windows user of PrusaSlicer would have to do, this is incredibly onerous.

lukasmatena commented 1 year ago

Thanks for the suggestion. The reason why the NetFabb fixing is not available in Linux/macOS builds is that the whole repair service is in fact provided by Microsoft itself, and it is simply only available in Windows 10 and above.

We are well aware of the fact that the feature is missing on the other platforms. In fact, we already tried integrating a different mesh fixing algorithm to substitute NetFabb on Linux and macOS, but the results were not satisfactory. We may get back to it in future. Sadly the problem of fixing a broken mesh is quite difficult and we can be grateful that the service is provided on Windows.

Regarding your other suggestions:

kozross commented 1 year ago

@lukasmatena - Thanks for the feedback. While I am a bit sad that it makes Linux (and Mac) users of Prusa's official slicer second-class, I also understand there's not a lot you can do about it.

Out of interest, is the service provided by Microsoft an API callout of some kind? Netfabb for Linux does exist (in a much older version), and can provide similar fixes. However, I assume calling out to it is either impractical or impossible.

bubnikv commented 1 year ago

Out of interest, is the service provided by Microsoft an API callout of some kind? Netfabb for Linux does exist (in a much older version), and can provide similar fixes. However, I assume calling out to it is either impractical or impossible.

Microsoft provides a fixing service through Windows 3D Printing API. We actually don't know what algorithm Microsoft uses and where they got them. We assume they bought the algorithms from Netfabb (which is now part of AutoDesk), we may however be wrong and also the situation may have changed over the years. For example, it seems that initially Microsoft ran the 3D fixing service in the cloud, so your Windows box sent your 3D data to Microsoft for processing. Nowadays it seems the same Windows API processes the data locally.

čt 20. 10. 2022 v 10:48 odesílatel Koz Ross @.***> napsal:

@lukasmatena https://github.com/lukasmatena - Thanks for the feedback. While I am a bit sad that it makes Linux (and Mac) users of Prusa's official slicer second-class, I also understand there's not a lot you can do about it.

Out of interest, is the service provided by Microsoft an API callout of some kind? Netfabb for Linux does exist (in a much older version), and can provide similar fixes. However, I assume calling out to it is either impractical or impossible.

— Reply to this email directly, view it on GitHub https://github.com/prusa3d/PrusaSlicer/issues/9066#issuecomment-1285163107, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABMPSI3D34NUMDTGT6TYQJTWEEBPJANCNFSM6AAAAAARJSIYTQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

BigBen2003 commented 1 year ago

English: Idea: Can't you just provide some kind of proxy (or something similar) that runs on Windows 10 and through which all access to Netfabb is forwarded? Then it should look to the Netfabb provider as if the call comes from a Windows 10 system, but actually comes from a Mac or Linux system.

Deutsch: Idee: Kann man nicht einfach eine Art Proxy (oder etwas ähnliches) bereitstellen, der unter Windows 10 läuft und über den alle Zugriffe auf Netfabb weitergeleitet werden? Dann dürfte es für die Netfabb-Anbieter so aussehen, als wenn der Aufruf von einem Windows 10 System kommt, jedoch tatsächlich von einem Mac- oder Linux-System kommt.

BillyCroan commented 1 year ago

I'd love to see this working. It's rather disheartening to have to throw away my values for software library just to fix a mesh.

Some have mentioned a netfab online service. Link?

Is there no Linux command line tool to fix meshes?

What workarounds have other GNU+Linux users discovered?

neophyl commented 1 year ago

There used to be a cloud based netfabb fixing service but it was closed. So a link is no longer available. Autodesk do have a habit of folding previously free tools/functionality into paid for versions of software.

kozross commented 1 year ago

@neophyl Also of hating Linux to the point of removing support from existing products that had it.

Dapid commented 1 week ago

I don't have extensive experience, but I found admesh to be able to fix anything I threw at it, and it is blazing fast.

(The author claimed to be able to fix a mesh with 320 000 facets in 13 minutes, my 266 588 facets on my modern laptop takes 0.15 s, but I do have a bit more than 16 MB of memory).

kozross commented 1 week ago

@Dapid - link?

Dapid commented 1 week ago

Oops, I forgot to include it: http://github.com/admesh/admesh/