Can someone explain me why “mesh boolean” is so slow and memory hog?
I’m using windows 10, 24-threads CPU with 128GB of RAM. The “mesh boolean” is using single thread and much of the RAM taking hours to execute.
Boolean operation is most basic feature I need to design my CAD models. When using Orca slicer I see almost no difference between Bambu Studio and both share same issue with boolean operation. When I run “mesh boolean” on an object having about 50 primitive parts (cubes and circles) and similar amount of negatives (also primitives), it consumes about 7% of my CPU (1 thread?) and memory consumption slowly grows to dozens of gigabytes. During that time UI remains unresponsive.
I’m not sure this is an apples to apples comparison.
If we’re discussing a parametric CAD program such as Fusion360, Solidworks, FreeCAD, OnShape etc, the boolean functions in those programs are working on vector-based solid models(STEP, IGES, etc). In the slicer it is working on a mesh(STL files). The challenges between the two are very different.
A better example or test is to bring the model into something like Blender which can only operate on a mesh and then do a comparison.
That’s a pitty that bambu studio remains unresponsive while “mesh boolean” is running.
I have no experience with the algorithms behind this - would be nice if this could use multiple threads (maybe not applicable?).
Thanks for a start point for the lecture. I could now search for mesh boolean vs the second approach.
Yeah, unfortunately the boolean feature still need more baking in the oven of software development. Bambu “borrowed” this from Orca who had it first. Orca I believe simply reconstituted original code that had been excluded when Bambu Studio was forked from Prusa and Cura Slicer. The original source is a bit obscure to me. Nevertheless, it is in my view still “experimental” code and has lots of bugs in it… Nevertheless, it has its uses.
At this rate it’s going to be literally multiple hours to union the last four mouse ears using mesh boolean. Ouch. Bambu needs to hire some real computer scientists to speed up their algorithm.
That is correct. The windows intrinsic function that is used to simplify a 3D mesh is the same OS library that both 3D Builder and BS and ORCA use.
If one want to try something else, Meshmixer is still available for free but is no longer update. It has a simplify feature that uses its own libraries.
I should also now add that FreeCAD 1.0 is now a decent contender for manipulating geometries into solids. It has been my Go-to utility to convert STLs to STEP files where other utilities online have choked. But be warned, a 260,000 triangle conversion can take 25 minutes and you might believe the program had crashed because there is no on screen update. But is a tool that works when the other tools do not, at least so far it has.
Time will tell, but it might have been overkill anyway.
I’m doing these manual mouse ears rather than using the mouse ear tool because with the mouse ear tool, it won’t print supports on top of the mouse ears, whereas with this method it will, and that’s what I need.
undoubtedly way more than needed, but it’s doing a great job of pinning the print down to avoid warping, as well as provide well anchored support for the supports. Unlike the mesh union, the merge function happens very quickly.
I’ve been struggling for a while now getting this model to print without curling and other errors, and so far this brute force approach is working quite nicely.
Again, these are mouse ears generated using primitives (basically a 25mm cylinder of height 0.2mm) rather than the mouse ear tool, because otherwise the regular supports decimate the mouse ears and print directly to the plate. This way the supports print on top of the mouse ears, which really helps a lot at locking down the print.
So, if someday you’re desperate, maybe give it a try.