boolean modifier in blender

Discussion in 'General Discussion' started by 654624_deleted, Nov 24, 2014.

  1. Hi all !
    I've got a question.
    When I'm modeling in blender I sometimes work with two different meshes in the beginning that I join later on with a boolean modifier.
    After applying the boolean join the mesh looks for example like this:

    [​IMG]

    This is OK when only working in blender. But when I want to print the mesh I get difficulties with intersections. Triangulating sometimes help, but often there still rest some intersections.

    What I do then is merging vertices manually. So that the result Looks like this :

    [​IMG]

    but this is very very tedious.
    My question : Is there any way to make the vertices of the two meshes link better when applying a boolean join ?
     
  2. brasskitten
    brasskitten Member
    Hey GuineaPixDragons

    (Disclaimer, I run an old version of blender so the steps may be different for you)

    It looks like the Normals of the lower mesh are inverted. In Edit Mode select Draw Normals from under the Mesh Tools More tab. Normals show which way each face is facing and can mess with the Boolean if Blender thinks your mesh is inside-out. With Draw Normals on you should see blue lines coming out of each face. These lines emanate from the 'outside' of a face so if your mesh is inside-out you'll probably only be able to see them with x-ray turned on.

    To fix, select all (ctl+a) then Recalculate Outside (ctl+n). This will tell blender to recalculate the normals of each face so they point to the outside of the mesh. Run your Boolean Union again and it should join them up correctly.

    Hope that helps!

    Andy
     
  3. Hello brasskitten,

    thank you very much for your answer, but the normals of my two meshes were OK. (that was a trap I tapped into some time ago though - wondering why my modifier don't works properly).
    In fact the union is working properly only that the vertices don't merge automatically.
    Maybe this has to be so in blender.
    Maybe there is some clipping function that I have to turn on.
    I don't know.
    I can replicate this problem with a simple cube and a sphere. Subdivide both several times and join them with a boolean modifier. Everything looks good in blender, but if you triangulate the faces for 3D-printing it might result in intersections or even non manifold edges

    How do others in this community work with this ? Do you avoid having several meshes that have to be joined in the end by modeling all out of one piece with extrude and other functions ? Or don't you have this problem because you have other default settings ? Or is this something that you all live with ?

    thanks
    Marion
     
  4. stannum
    stannum Well-Known Member
    Blender Booleans have been always plagued with issues. And since the addition of Ngons, you can get even more hidden issues (from all tools that change topology in reality), waiting to bit you later. Tried your suggestion and inspected the meeting zone, near all of the faces are Ngons now and look like yours, correct from far away but ugly on closer inspection

    Ngons group triangles, and sometimes the meshing algorithm leaves a lot to be desired. Some people requested a way to have Ngons only appear when explicitly created but so far only one tool has a setting to avoid them, so people that don't like Ngons in their workflow have to waste time detecting any mess that could arise.

    Maybe if people keep asking, there will be a global "Ngons only if explicit user command" setting, making everyone happy and not just "Ngon lovers".

    Anyway, with SW (but not all 3d print suppliers), you can leave things without booleans, and the MeshMedic system will perform the unions. If you make sure all parts are non manifold and they overlap enough, the result should be OK.
     
  5. frigate56
    frigate56 Member
    I know your topic is about Blender booleans, but I just wanted to add my two cents:

    I struggled and struggled to make Booleans work properly with Blender.

    Sometimes they worked, sometimes they failed, and sometimes they appeared to work but introduced self-intersections and other issues.
    Eventually, in sheer desperation, I turned back to 123D Design. It's dead-simple to just position the parts as needed, then do a join/intersect/subtract command and export the resulting file as an STL mesh.

    I just don't get Blender at all. I can see how powerful it is for 3D, but it was never intended for 3D printing, per se. And it's so user-unfriendly, IMHO. So it might be the go-to app for some things, like inset/extrude operations, but other apps may be better and easier to use for other tasks. I usually find it takes me a suite of tools (ranging from 123D to Blender to 3d-Coat, to Netfabb basic, to Meshmixer) to get any one model project exactly the way I want it.
     
  6. stonysmith
    stonysmith Well-Known Member Moderator
    Unless you're working with colored (textured) models, I'd run it thru Netfabb Cloud https://netfabb.azurewebsites.net/ and see if that straightens out your normals and shell intersections.

    I work primariy in Truespace, and I often export to STL with all the shells separate, and depend upon Netfabb Cloud to union it all together.
     
  7. Ontogenie
    Ontogenie Well-Known Member
    I do all of my work in Blender, and then follow up with Netfabb just to clean up any nonmanifold issues, etc. In my experience, you don't need the Boolean modifier at all (I struggled with it as well because of some tutorial on SW that suggested it was necessary). Just join the two meshes with ctrl J, and you're good to go.
     
  8. stannum
    stannum Well-Known Member
    No need to join meshes, just make sure you export every object needed to compose the result. Later it can be verified in another blender instance, by importing back to check nothing is missing (and while at it, remove duplicates and use the select non manifold cmd, just in case some vertex overlapped).
     
  9. Ontogenie
    Ontogenie Well-Known Member
    So if you have two overlapping meshes and they're not joined (in the Blender ctrl J sense), they will still print as one object? I've never tried that...and I'm pretty sure I'd lose a piece if I didn't join them. :)
     
  10. AmLachDesigns
    AmLachDesigns Well-Known Member
    @stannum is reliable, as always.

    Select each object and then just export, SW will handle it just fine - but if the shells are not overlapping, you will get separate shells in SW (naturally).

    Leaving aside the problem of the OP, most Blender Boolean troubles seem to be related to Normal issues.
     
  11. stonysmith
    stonysmith Well-Known Member Moderator
    MOST of the time, having overlapping pieces will work just fine. They will be merged (unioned) together into one single piece.

    However... if you have very tiny things that overlap such as rivets around the edges of a flat plate.. the upload software (MeshMedic) may get confused and remove those tiny items. Netfabb Cloud, even though it's fundamentally the same software as MeshMedic, seems to not get confused on those small parts.

    When I say very tiny, I'm talking about details whose size (length/width/depth) are near or below the ThinWalls size.

    Netfabb Cloud is setup to just weld shells together and fix other problems. MeshMedic on the other hand has been tweaked to assume that models are going to be 3d Printed, and they added a bit of code to strip out any super-small parts that would just get lost in the printer if they were floating by themselves.

    There are several examples here in the forums such as "Where'd my (tiny) Bricks go?" If you're doing super-fine detail work, then your overlapping parts need to be all unioned together properly into one shell. But, if you're making a much larger object that doesn't have super-details, just uploading individual overlapping parts works well. The trick to it is that they must be OVERLAPPING. All too often, someone uploads something where the parts are 'very very close' but not actually overlap.

    ===
    There is another small problem when uploading separate, overlapping pieces. I discussed that on this forum thread:
    https://www.shapeways.com/forum/index.php?t=rview&th=782 5&goto=41969#msg_41969
     
  12. stannum
    stannum Well-Known Member
    Or model the tiny things tiny in the visible part, and big in the part that overlaps. Make sure they have big plugs inside the big parts, so in reality the shells are not tiny anymore.
     
  13. It's not just Blender, most 3D programs Booleans are bad. They always seem to mess up the mesh. This has been a problem for over a decade. At leas as far as poly modeling goes. Nurbs and other type of modeling seem to do better.
     
  14. drloris
    drloris Well-Known Member
    It looks to me like the issue with merging functions like in the example given is that they are creating T-junctions.
    These have a vertex somewhere on the edge of a neigbouring face.

    That can be treated in two different ways by software. Either the neigbouring face is using the node, in which case it isn't a triangle, or the face ignores the node (in which case it can still be a triangle).

    The issue with both of these is down to rounding.
    Any three points are co-planar, but four points may not be. Most arbitrarily angled planes won't put all four (or more) given points exactly in positions which can be represented with a fixed number of bits.
    Similarly, if we have a point on a line - in-between the ends of two arbitrary points, it may not be representable exactly in a fixed number of bits.

    It will be close - white van close - but still not good enough for all purposes.

    So the upshot is that you get a thin slint opening up the skin of your model.

    So either way, the only real solution is to force everything to triangles.
     
  15. Wow, this community is overwhelming helpful !
    Thank you all for your tips.
    I think I will have a look at Netfabb cloud.
    Maybe I will also have a test with an upload of overlapping meshes.
    Thanks again

    marion
     
  16. numarul7
    numarul7 Well-Known Member
    My advice when doing booleans with any software (I use Blender ) , subdivide the meshes at some high polygons (in blender you can use simple subdivide for flat surface / and smoth for organic and tweak it up) and calculate normals otuside.

    Boolean can`t work good if the both surfaces does not have lots of polygon. Default cube + 1 sphere with high polycount can land to an error or work then again fail.

    Netfabb it is used by Shapeways internally , they are mentioned on Netfabb blog. So when you upload a file to Shapeways it goes literally to Netfabb cloud (internally Shapeways) for fixes if there are errors.

    Good to know!
     
    Last edited: Nov 27, 2014