BooleanDifference failure

Hi there,
So I’m trying to create a column that has this edwardian text etched into it diagonally as ornament. I’ve tried flowing the text along the column and doing boolean difference, but every time I do this the difference either fails, or splits the surface. I also tried doing the difference when the text is flat, but again it either fails or splits the surface. Are there some settings I can change - or a better way to get this effect? Thank you!

What is the source of the font used? Just a guess, but the curves in the font may be causing the difficulties. Can you upload an example of the text as a Rhino .3dm file?

Yeah it’s the standard Edwardian Script ITC that came with rhino. Heres a link to a file…Thanks

Some of the text characters which were trimmed at the ends of the text have open faces. Use the Cap command to close those faces.

Hi @ptrkmgrw

First of all, a lot of your objects are open, making them unable to boolean. Simply use Selopenpolysrf to select them and Cap to close them up. Also there are a few little pieces that need to be deleted - parts of the text that have already been cut off the, but not deleted. If you make a bounding box around your objects, you will see the left and right edge not lining up. Last, it’s a good idea to break complex boolean operations up in smallet parts, subtracting only 1 or 2 rows of text at a time. It’s my experience, that you are more likely to succeed, and it also makes it easier to find and troubleshoot potential problematic operands. Oh, and leave your viewports in wireframe, so that you don’t spend time on generating the render mesh each time.
Or if this is just for rendering, you could use a bump map instead, and save yourself the trouble.

HTH, Jakob

Hey thanks. Even with all the objects closed and everything lined up the boolean still failed. I had tried cutting it up into slices and even slowly going one by one to troubleshoot. But it would always end up destroying the surface at a certain point. Anyways thanks for the bump map tip - Ill use that for now. Still curious as to why the boolean failed though.

I haven’t had a chance to look at your file, but reading your comments, I have a few suggestion.
If you are sure that all the text objects are closed properly, then try these:

Try changing your file tolerances under units on your document option.
Try your Boolean split with the 3d text object fully puncturing the column and Boolean union with smaller column if necessary.

You can check if the text object geometry is valid using Check, I believe.

Hello - one thing you can do is make sure each word us made up of non-overlapping curves:


Like this:

So that there are no overlaps going into the Flow operation.

Text_Cleaner.3dm (73.7 KB)


@pascal, I think the Boolean failure has to do with the file size. I created a new set of clean text for one helix and boolean difference failed, but when I did the difference one polysurface at a time I could Boolean the entire helix. So I deleted the OP’s characters and did a save small, after which I could Boolean difference a complete helix in one.

Incidentally, to create my character cutters, I generated flat surfaces. The overlaps you see are where one character flows into the next. Rather than introduce fillets like @pascal, I used the edge of the main stroke to trim the overlapping tail and the joined the two together. Once I had a set of linked characters I merged the surfaces. I felt that filleting went against the nature of the typography. I finished by extruding to get solids.

In addition to the problem of size in relation to Boolean difference, I found a problem using a rendered viewport - by the time I got to three helixes the cylinder itself was becoming ghostly. And the file is getting big again, so I don’t know that this is going to be a viable way to model the object - perhaps bump maps are the only route.

Hey guys - thanks a lot for all the great input! Through combining these tips I got the column to work the way I wanted it. I reorganized the curves of the font, then extruded it carefully myself. Even after redoing the curves there were some overlaid gaps that were probably destroying the surface during the difference. Then I divided the actual differences up into about 10 chunks and adjusted the tolerance when necessary.