I’m experiencing Boolean Difference fails and I can see why it’s happening. I just don’t know how to prevent it.
Here’s two pictures showing the problem. the first shows certain items don’t boolean subtract like the others. The second shows when I explode the problematic object and start deleting parts I get to a very small piece that causes the failure. I wish I knew how to correct the curves before I extruded them into solids for the subtraction. I’m hoping it would be way easier than to fix the curves than fix all these solids one by one. It is taking forever and I run into this stuff all the time in my workflow.
It is difficult to determine the cause without an example .3dm file. Can you create and upload a file with several examples solids which do not Boolean, the curves used to create the objects, and a solid you wish to subtract from?
in general many fonts are a very good resource of bad quality curves / continuity etc…
I use them a lot to test my custom commands.
Use the font / textobject and output curves - analyse the curves
_properties (closed ?)
_curvatureGraph
_Gcon on segements
…
Here’s the .3dm file. You will see what I’m trying to do. Most letters boolean subtract nicely, but others do not. If you explode the failed letters and start deleting the side walls you will see a segment of sidewall which is incredibly small. If I correct that area on the original curve (delete the control point) and rebuild the letter it will subtract perfectly. The trouble is there isn’t enough time to correct all these mistakes one by one. I need to understand how to correct the curves before I extrude them so they all boolean on the first try.
Currently I’m using IntersectSelf to identify all the curve self-crossings that prevent a curve from extruding. Then I extrude and try to boolean subtract. I’m guessing the boolean command doesn’t like these extremely tiny features that sometimes appear in the extrusion.
I should also say that all the curves are originating from an Adobe Illustrator .ai file. My work flow goes, Illustrator, Rhino, CNC milling table software.
Thanks for that. I didn’t realized the tolerance setting affected boolean operations like that.
Here’s an update on what I found. I discovered a command called selshortcrv . When I used it, it revealed all the problem font text curves had micro lines in them which caused the boolean to fail. Selshortcrv was able to find all those micro curves in one command. All the booleans worked great after that!
Yes, Boolean operations depend on the intersector creating closed loops. The smaller the objects become the tighter the tolerance needs to be. Font curves are often dirty curves. I’m not surprised you’ve found these micro segments.
If you have not already tried this: when you first bring the curves in from the *.ai file; select them all and then run the join command. I did not find any curves in the file you up loaded. Irrespective, the result may differ from instance to instance i.e. noting joined, X curves joined, out of tolerance warning.
I do not have the Font / Type Face you used but at least the letters CT are quite close together. Maybe they were this way in AI or ended up very close to each other when you brought them into Rhino. If the letters are close in AI or become close when bringing them into Rhino you could try some Kerrning beforehand. I doubt their is a Standard Ligature for the CT combination. and besides it seems going this route may increase the likeliness the problem Gijs mentions occurs. Likewise, using an Alternative Gyph does not seem like it would prevent the letters from being close.
Simply moving the letters in Rhino may be the best.