BoolPro: A better mesh boolean


#71

I am only using primitives and a bolean from primitives.

Everything is fine.

Confused because B - A does an interception between even objects and also a difference with the odd objects counting from the last 4 selected objects added to the last object space.

Maya crashes when I try to move objects in B - A.

Maybe this can be useful or there is something wrong here?


#72

I’ll need an example.


#73

here is the example in the attachment. It is in maya 2014 mb.

The selection started from top object to the bottom object in the outliner.


#74

Is there a chance that you give me a full description of the problem and how to reproduce it?

I’m selecting all the objects from pSphere1 to pCube1. I’m running the boolPro setup script, and I change the operation to B-A. I’m translating some of the objects, and everything is fine. Now what?


#75

The crash didn’t happen anymore. So I think you should forget it. Maybe something from my setup.

Sorry to bother.

Keep up with it.
Thanks.


#76

the face loop error appeared again with simple objects from primitives.
See this mb file select from first object and try to make A - B or interception, it makes face loop error.

EDIT: I must triangulate the cubes before making A - B and things seem to be fine.

2ndEDIT: The first object in the file was a boolean that did nor work well, try seeing it shaded.
It seems that booleans with cubes do not work.


#77

I selected all the objects, ran boolPro (on default union mode), and got the face loop error. The problem is with the first object. I mentioned this before, and now I added it as a note to the initial post on this thread:

  • Boolean operations are defined for solids. Thus, any input object should be watertight and with planar faces (preferably triangles). Whatever booPro does with other objects is magic, which might fail.

Also, the first object fails the cleanup test, as the note before that warns:

  • If the operation fails, first check the validity of the input meshes. Each input mesh should pass the Mesh> Cleanup with all the parameters on. If the problem persists please post here a link to your two meshes (.obj or .fbx).

So, please post an example with watertight objects, which passed the cleanup test.


#78

As I said in the previous post edit, the object that is not water tight was created with boolpro from 3 primitives.

Here is a scene with the objects that made the problem.
Select from top and do A - B.


#79

Good job, you found a bug (or at least I can’t remember it).

In the following example I created two cubes. One is scaled along x,z axes and one is scaled along y-axis. Then I did boolean union.

[img]http://i743.photobucket.com/albums/xx77/zoharl/maya/2cubes_boolpro_bug_zps19fb85ac.png[/img]

BUG: In a boolean operation (e.g. union) between two objects A and B, if A is fully contained inside a face in B, then the face would disappear. Temporary solution: refine the face (Mesh> smooth).


#80

I hope you got a clue on how to fix it. :wink:


#81

Actually, it’s more of an unimplemented feature than a bug. That is, Carve lib supports it (boolean operation when one of the objects is fully contained within a face of another), but it’s not enabled in boolPro. Not sure when we will have time to address this.


#82

The upcoming Maya 2014 extension release does include the new booleans built with the Carve libraries. :wink:


#83

And I’ll finally be free… :slight_smile:


#84

Dear Dr. Zohar,

Thank you very much for providing so powerful BoolPro. Currently I am trying to do boolean operations to multiple domains polyhedrons. Before this I always use CGAL. However, for this kind of multiple domains polyhedrons, the CGAL doesn’t work. I noticed that Carve could process this kind of problem and I also got to know that the powerful BoolPro provides convenient interface between maya and Carve. I downloaded the BoolPro code and studied very much from the code. Thanks.

Now I have a problem when using the Carve. For the poly1 and poly2 which are read from a1.off and a2.off, the following code crashed. Could you please take a look at it for me?

Thanks,
Tang Laoya

/// a1.off
OFF
18 24 0
1 -2 -2
1 0 -2
1 2 -2
-2 -2 -2
-2 0 -2
-2 2 -2
1 -2 0
1 0 0
1 2 0
-2 -2 0
-2 0 0
-2 2 0
1 -2 2
1 0 2
1 2 2
-2 -2 2
-2 0 2
-2 2 2
4 0 1 7 6
4 0 3 4 1
4 0 6 9 3
4 6 7 10 9
4 1 4 10 7
4 3 9 10 4
4 1 2 8 7
4 1 7 10 4
4 1 4 2 5
4 2 5 11 8
4 4 10 11 5
4 7 8 11 10
4 6 7 13 12
4 6 12 15 9
4 6 9 10 7
4 7 10 16 13
4 9 15 16 10
4 12 13 16 15
4 7 8 14 13
4 7 13 16 10
4 7 10 11 8
4 8 11 17 14
4 10 16 17 11
4 13 14 17 16

/// a2.off
OFF
8 6 0

2 1 -1
2 1 1
2 -1 1
2 -1 -1
-1 1 -1
-1 1 1
-1 -1 1
-1 -1 -1


#85

Did you make fun of my avatar?

Your first object isn’t a manifold, and I can’t help you further. Please contact carve lib author.


#86

No. You did help me great in studying the Carve lib. At least now I have successfully read/write the OFF file by my own manners, that means I can use this lib latter.

BTW: I provided an unclosed polyhedron before and you can get the result by A_MINUS_B operation, I also tested but found that the 1.4 version works but latest version still crash, so there are still some bug in coping with these kind of unclosed polyhedrons.

Now the problems focus on me is that my other projects are compiled by VS2012 but the Carve 1.4 can’t be compiled by VS2012, so that I have to use the latest version to work. I have also contacted with the author of Carve, he replied that he is on holiday:(

Thanks,
Tang Laoya


#87

Bumping this thread.
Is the plugin obsolete or no longer in development? If it’s available then is there an install for Maya 2016 available?


#88

I can build a version for Windows x64, maya 2016 if you want. But isn’t the new Maya (I think since 2015) finally using the same machinery, and thus would perform comparably?


#89

So we should try it in 2016?


#90

I didn’t need to use booleans for a couple of years; but rumors say that the new Maya booleans should work the same as my boolPro plugin. So maybe you should give maya internal booleans a try. In any case, I uploaded a new boolPro_2016_x64.mll.

Note:
I moved to VS2013, and initially I had problems with the plugin crashing. I did the following, and I’m not sure what helped:

  1. I moved the internal classes Hook and Hooks outside of the CSG class (but still in the namespace).
  2. I added the projects from carvelib (carvelib, fileformats, glew, gloop) to boolPro solution instead of linking against the lib.
  3. In release mode I changed the code optimization from max speed (/O2) to min size (/O1). This might affect performance.

Instead of the above, the plugin should probably be built with vs2010, instead of messing with carveLib.