Any recommendations for a Boolean tool?

Discussion in 'Software and Applications' started by inio, Feb 2, 2010.

  1. inio
    inio New Member
    I'm working on a model that's several pieces that I'm modeling separately, and I'm having a really hard time finding any tool that will do a boolean union to join them together. I've verified using Meshlab that they're both 2-manifold and non-self-intersecting, so the input geometry isn't the problem, but nothing seems to want to actually produce a result.

    Blender sits there for several hours and eventually crashes out of memory, Rhino (only commercial package I have) spits out a few polygons along the joining line and nothing else.

    Anyone have any recommendations? Ideally it should retain UVs and materials but I can write a blender script to copy over UVs if it doesn't.

    The meshes are around 200k (final) and 50k (WIP, probably towards 100k when I'm done) tris. Yes, they need to be that high poly to capture surface details - these have been simplified down from 1-2Mpoly meshes each using meshlab.
  2. rawkstar320
    rawkstar320 New Member
    I use SolidEdge ST. its a professional 3D CAD package that I use here at school. I do booleans with models everyday, so if you want, you can send me your stuff and I can try it. Step (.stp) Iges (.iges, .igs) or solid works files are preferred. I have yet to figure out how to convert an STL file into something useable within SolidEdge. I know there is a way, but I just havnt figured it out.
  3. virtox
    virtox Active Member Moderator
    I'd also be happy to give it a try in 3d max.

    One trick that might help for complex models is to create two subtraction booleans. (and depending on which package you use, this might not make a difference at all)

    So make a mesh
    C = A-B
    D = B-A

    That way for each half the edges can be fixed and refined manually, before welding them together.

    But unfortunately booleans and high polygon-count have a tendency to give a lot of trouble and corrupted meshes in most applications.

    Another option is to trace the intersection contour along the edges of each object. Then cut out the overlapping pieces and weld them.

    And if all fails, you could try to minimize the overlap volume, and just upload the two intersecting shells. (overlap volume is possible in uploads but is charged double)

  4. aoster
    aoster New Member
    i am possibly not neutral, but I like to claim that netfabb Studio has a very stable boolean functionality for STL files. If you can send over these files, I would be very interested in proving it by merging them together.

    Best regards,
    Alex from netfabb
  5. iguffick
    iguffick New Member
    I use Blander, when I want to boolean complicated objects I do it manually using the 'Geom Tool' script.

    Download and install the Geom Tool script.
    Select both objects and join them with 'Ctrl-J'.
    Tab into edit mode.
    Select vertices that overlap (or all vertices).
    Select Mesh->Scripts->Geom Tool->Intersect: face(s) cut
    Manually delete the surfaces that are no longer needed.
    Do a manifold check and see if you've missed any !

    It can be a bit of a pain at times, but it will work.

  6. inio
    inio New Member
    I also found another approach that seems to be working with my current meshes.

    Right now my sources meshes generated by taking a low-res cage, applying a heavy subsurf and then displacement modifier, and then simplifying the result in meshlab

    Instead, what I just tried was to duplicate each mesh, apply a light subsurf, boolean those results, subsurf more, and then bake the original detailed source objects into a displacement map on the subsurfed boolean result. The final result is a single high poly mesh that looks about like I want but didn't involve any booleans on 50k+ poly meshes.

    I'm a little worried this'll cause problems when I go to upload it due to self-intersecting faces along the boolean edge boundaries, but I don't have time at the moment to check that. If it is maybe I'll be able to clean it up in meshlab with a few iterations of deleting self-intersecting faces and filling holes, or failing that painting out the displacement along the crease edges.
    Last edited: Feb 3, 2010